String
がファイルまたはディレクトリのパスを表しているかどうかを確認する有効なメソッドが必要です。 Androidで有効なディレクトリ名は何ですか?フォルダー名には'.'
文字を含めることができますが、ファイルまたはフォルダーがあるかどうかをシステムはどのように理解するのでしょうか?前もって感謝します。
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
Nio APIを使い続けながらクリーンなソリューション:
Files.isDirectory(path)
Files.isRegularFile(path)
これらのチェックを実行するには、nio APIに固執してください
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()){
}
文字列がプログラムでパスまたはファイルを表すかどうかを確認するには、isFile(), isDirectory().
などのAPIメソッドを使用する必要があります
システムは、ファイルまたはフォルダーがあるかどうかをどのように理解しますか?
ファイルとフォルダのエントリはデータ構造に保持され、ファイルシステムによって管理されていると思います。
ファイルシステムに存在しないの場合、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
の両方に当てはまります
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();
}
質問に直接答えるため。