我需要一个有效的方法来检查String
是否代表文件或目录的路径。 Android中有效的目录名称是什么?当它出来时,文件夹名称可以包含'.'
个字符,那么系统如何理解是存在文件还是文件夹?提前谢谢。
答案 0 :(得分:164)
假设path
是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
请参阅File
Javadoc
或者您可以使用NIO课Files
并检查以下内容:
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
答案 1 :(得分:45)
使用nio API保持清洁解决方案:
Files.isDirectory(path)
Files.isRegularFile(path)
答案 2 :(得分:20)
请坚持使用nio API执行这些检查
import java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
答案 3 :(得分:4)
String path = "Your_Path";
File f = new File(path);
if (f.isDirectory()){
}else if(f.isFile()){
}
答案 4 :(得分:2)
要检查字符串是否以编程方式表示路径或文件,您应该使用API方法,例如isFile(), isDirectory().
系统如何理解是存在文件还是文件夹?
我想,文件和文件夹条目保存在数据结构中,并由文件系统管理。
答案 5 :(得分:1)
系统无法告诉您String
代表file
或directory
,如果文件系统中不存在 。例如:
Path path = Paths.get("/some/path/to/dir");
System.out.println(Files.isDirectory(path)); // return false
System.out.println(Files.isRegularFile(path)); // return false
以下示例:
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
所以我们看到在两种情况下系统返回false。对java.io.File
和java.nio.file.Path
答案 6 :(得分:0)
private static boolean isValidFolderPath(String path) {
File file = new File(path);
if (!file.exists()) {
return file.mkdirs();
}
return true;
}
答案 7 :(得分:0)
public static boolean isDirectory(String path) {
return path !=null && new File(path).isDirectory();
}
直接回答问题。