web-dev-qa-db-ja.com

パスがファイルまたはフォルダーを表しているかどうかを確認します

Stringがファイルまたはディレクトリのパスを表しているかどうかを確認する有効なメソッドが必要です。 Androidで有効なディレクトリ名は何ですか?フォルダー名には'.'文字を含めることができますが、ファイルまたはフォルダーがあるかどうかをシステムはどのように理解するのでしょうか?前もって感謝します。

119
Egor

pathStringであると仮定します。

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
165
Baz

Nio APIを使い続けながらクリーンなソリューション:

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

これらのチェックを実行するには、nio APIに固執してください

import Java.nio.file.*;

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

if (f.isDirectory()){



  }else if(f.isFile()){



  }
4

文字列がプログラムでパスまたはファイルを表すかどうかを確認するには、isFile(), isDirectory().などのAPIメソッドを使用する必要があります

システムは、ファイルまたはフォルダーがあるかどうかをどのように理解しますか?

ファイルとフォルダのエントリはデータ構造に保持され、ファイルシステムによって管理されていると思います。

2
Juvanis

ファイルシステムに存在しないの場合、Stringfileまたは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.FileJava.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();
}

質問に直接答えるため。

0
gerardw