J'ai besoin d'une méthode valide pour vérifier si une String
représente un chemin pour un fichier ou un répertoire. Quels sont les noms de répertoire valides dans Android? Au fur et à mesure, les noms de dossier peuvent contenir des caractères '.'
. Comment le système comprend-il s'il existe un fichier ou un dossier? Merci d'avance.
En supposant que path
est votre 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
Voir File
Javadoc
Ou vous pouvez utiliser la classe NIO Files
et vérifier les choses comme ceci:
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
Solution propre tout en restant avec l'API nio:
Files.isDirectory(path)
Files.isRegularFile(path)
Veuillez vous en tenir à l'API nio pour effectuer ces vérifications.
import Java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
String path = "Your_Path";
File f = new File(path);
if (f.isDirectory()){
}else if(f.isFile()){
}
Pour vérifier si une chaîne représente un chemin d'accès ou un fichier par programme, vous devez utiliser des méthodes API telles que isFile(), isDirectory().
.
Comment le système comprend-il s'il y a un fichier ou un dossier?
Je suppose que les entrées de fichier et de dossier sont conservées dans une structure de données et sont gérées par le système de fichiers.
Le système ne dispose d'aucun moyen pour vous dire si un String
représente un file
ou un directory
s'il n'existe pas dans le système de fichiers. Par exemple:
Path path = Paths.get("/some/path/to/dir");
System.out.println(Files.isDirectory(path)); // return false
System.out.println(Files.isRegularFile(path)); // return false
Et pour l'exemple suivant:
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
Nous voyons donc que dans les deux cas, le système retourne false. Ceci est vrai pour Java.io.File
et Java.nio.file.Path
private static boolean isValidFolderPath(String path) {
File file = new File(path);
if (!file.exists()) {
return file.mkdirs();
}
return true;
}
public static boolean isDirectory(String path) {
return path !=null && new File(path).isDirectory();
}
Pour répondre directement à la question.