it-swarm.com.de

Prüfen Sie, ob ein Pfad eine Datei oder einen Ordner darstellt

Ich brauche eine gültige Methode, um zu überprüfen, ob eine String einen Pfad für eine Datei oder ein Verzeichnis darstellt. Was sind gültige Verzeichnisnamen in Android? Wenn es herauskommt, können Ordnernamen '.' Zeichen enthalten. Wie versteht das System, ob es eine Datei oder einen Ordner gibt? Danke im Voraus.

114
Egor

Angenommen, path ist Ihre String.

File file = new File(path);

boolean exists =      file.exists();      // Check if the file exists
boolean isDirectory = file.isDirectory(); // Check if it's a directory
boolean isFile =      file.isFile();      // Check if it's a regular file

Siehe File Javadoc


Oder Sie können die NIO-Klasse Files verwenden und Folgendes überprüfen:

Path file = new File(path).toPath();

boolean exists =      Files.exists(file);        // Check if the file exists
boolean isDirectory = Files.isDirectory(file);   // Check if it's a directory
boolean isFile =      Files.isRegularFile(file); // Check if it's a regular file
157
Baz

Saubere Lösung, während Sie mit der API von Nio bleiben:

Files.isDirectory(path)
Files.isRegularFile(path)
41
pgsandstrom

Bitte halten Sie sich an die Nio-API, um diese Prüfungen durchzuführen

import Java.nio.file.*;

static Boolean isDir(Path path) {
  if (path == null || !Files.exists(path)) return false;
  else return Files.isDirectory(path);
}
19
Sheng
String path = "Your_Path";
File f = new File(path);

if (f.isDirectory()){



  }else if(f.isFile()){



  }
4

Um zu überprüfen, ob eine Zeichenfolge einen Pfad oder eine Datei programmgesteuert darstellt, sollten Sie API-Methoden wie isFile(), isDirectory(). verwenden.

Wie versteht das System, ob es eine Datei oder einen Ordner gibt?

Ich denke, die Datei- und Ordnereinträge werden in einer Datenstruktur gehalten und vom Dateisystem verwaltet.

2
Juvanis

Das System kann Ihnen nicht sagen, ob eine String eine file oder directory darstellt, wenn es im Dateisystem nicht vorhanden ist. Zum Beispiel: 

Path path = Paths.get("/some/path/to/dir");
System.out.println(Files.isDirectory(path)); // return false
System.out.println(Files.isRegularFile(path)); // return false

Und für das folgende Beispiel: 

Path path = Paths.get("/some/path/to/dir/file.txt");
System.out.println(Files.isDirectory(path));  //return false
System.out.println(Files.isRegularFile(path));  // return false

Wir sehen also, dass das System in beiden Fällen false zurückgibt. Dies gilt sowohl für Java.io.File als auch für Java.nio.file.Path.

1
Emdadul Sawon
   private static boolean isValidFolderPath(String path) {
    File file = new File(path);
    if (!file.exists()) {
      return file.mkdirs();
    }
    return true;
  }
0
Kaweesi Joseph
public static boolean isDirectory(String path) {
    return path !=null && new File(path).isDirectory();
}

Um die Frage direkt zu beantworten. 

0
gerardw