Programm zur Ausgabe von Datei und Pfad

Heike_89

Mitglied
Hallöchen, ich bins mal wieder und habe mal wieder Probleme ;(

Diesmal möchte ich ein Programm schreiben, welches ausgibt, ob eine Datei im aktuellen Ordner vorhanden ist. Dazu soll ich eine Eingabe machen, z.B. Dateien class java temp (soviele Endungen, wie man will) und das Programm soll dann z.B. ausgeben:

/Dokumente/Dateien.class existiert!
/Dokumente/Dateien.temp existiert nicht!
usw.

Dazu soll ich boolean isFile(); verwenden. Habe das aber noch nie auch nur gesehen und weiß deswegen gar nicht, wie es verwendet wird.

Damit ihr seht, dass ich mir Gedanken gemacht habe, poste ich euch auch mein Programm in dem Wissen, dass es vielleicht auch ziemlicher Quatsch ist.

Java:
import java.io.File;
import java.util.Scanner;

class Konsolenparameter
{
		public static void main(String[] args)
		{
		Scanner input = new Scanner(System.in);
		File f = new File();
		
		boolean exists;
		for(String eingabe : args)
			{
			eingabe = input.next();
			File f = new File(eingabe);
			if(f.exists())
				{
				System.out.println(f + " existiert!");
				}
			else
				{
				System.out.println(f + " existiert nicht!");
				}
			}
		}	
}
 
Das boolean isFile() zeigt dir an, ob es ein File ist. Das brauchst du, damit du keine Directorys mitscannst.

Java:
File f = new File(pfad);
if(f.isDirectory(){
System.out.println("Ist keine Datei!");
}
 
In Java-7 gibt es das java.nio.file package und dies sollte genutzt werden, wenn möglich.

Dein Problem löst sich dann so:
Java:
	public static void main(String[] args) {
		for (String eingabe : args) {
			Path path = FileSystems.getDefault().getPath(eingabe);
			if (Files.exists(path) && Files.isDirectory(path)) {
				System.out.println(path + " existiert!");
			} else {
				System.out.println(path + " existiert nicht!");
			}
		}
	}
 
Zuletzt bearbeitet:
ohne Verwendung eines package
Na, aber du verwendest doch auch in deinem Programm Klassen, die du nicht selber geschrieben hast???:L

Beispielsweise stand in deinem Beispiel die Zeile
Java:
 File f = new File...
Die Klasse File hast du bekannt gemacht, indem du da ein Import für die Klasse File hattest.
Java:
import java.io.File;
Das ist eigentlich immer so, das du Klassen aus dem JDK benutzen musst.
 
Achso... hmm nagut da könntest du wohl recht haben. Ich habs jetzt so versucht, wie du geschrieben hattest, aber es funktioniert nicht.

Java:
import java.nio.File;
import java.util.Scanner;   
class Dateipfad
{
	public static void main(String[] args) 
	{
			Scanner input = new Scanner(System.in);
			File f = new File();
			String eingabe = input.next();
            for (eingabe : args) 
			{
                Path path = FileSystems.getDefault().getPath(eingabe);
                if (Files.exists(path) && Files.isDirectory(path)) 
				{
                    System.out.println(path + " existiert!");
                } 
				else 
				{
                    System.out.println(path + " existiert nicht!");
                }
            }
    }
}
 
@turtle
Das ist mit Sicherheit eine Übungsaufgabe. Also soll man selber Code schreiben und nicht schon vorhandene Funktionen benutzen. Ist genauso wenn Leute Strings von Zahlen in Binärzahlen umwandeln sollen. Da soll auch meist kein Integer.toBinaryString() benutzt werden.

@Heike_89
Wenn du mit den Startparametern/Argumenten arbeiten willst braucht du erstmal keinen Scanner. Ich nehme an du möchtest das Programm später so aufrufen: java -jar Programm.jar Dateien java text class
Dann steht im args[] Array an erster Stelle der Dateiname (z.B. Dateien). An den folgenden Stellen befinden sich die Endungen (z.B. java, txt, class).
So sähe es dann aus:
Java:
for(int i = 1; i < args.length; i++)
{
    String dateiName = args[0];
    String endung     = args[i];
    
    //...
}

Aus den beiden Strings kannst du dir den Namen der Dateien zusammenbasteln und so weiter machen wie du es schon hast.
 

Neue Themen


Zurück
Oben