231

新しい Java 7 IO 機能で少し遊んでいます。実際、フォルダー内のすべての XML ファイルを取得しようとしています。ただし、フォルダーが存在しない場合、これは例外をスローします。新しい IO を使用してフォルダが存在するかどうかを確認するにはどうすればよいですか?

public UpdateHandler(String release) {
    log.info("searching for configuration files in folder " + release);
    Path releaseFolder = Paths.get(release);
    try(DirectoryStream<Path> stream = Files.newDirectoryStream(releaseFolder, "*.xml")){
    
        for (Path entry: stream){
            log.info("working on file " + entry.getFileName());
        }
    }
    catch (IOException e){
        log.error("error while retrieving update configuration files " + e.getMessage());
    }
}
4

10 に答える 10

307

使用java.nio.file.Files:

Path path = ...;

if (Files.exists(path)) {
    // ...
}

必要に応じて、このメソッドLinkOptionの値を渡すことができます:

if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {

メソッドもありますnotExists

if (Files.notExists(path)) {
于 2013-03-22T13:30:57.900 に答える
7

フォルダー ディレクトリの文字列からファイルを生成します

String path="Folder directory";    
File file = new File(path);

および使用方法が存在します。
フォルダーを生成したい場合は、 mkdir() を使用する必要があります

if (!file.exists()) {
            System.out.print("No Folder");
            file.mkdir();
            System.out.print("Folder created");
        }
于 2016-08-16T23:16:28.340 に答える
6

Path を に変換し、File存在するかどうかをテストする必要があります。

for(Path entry: stream){
  if(entry.toFile().exists()){
    log.info("working on file " + entry.getFileName());
  }
}
于 2013-03-22T13:28:20.480 に答える
1
File sourceLoc=new File("/a/b/c/folderName");
boolean isFolderExisted=false;
sourceLoc.exists()==true?sourceLoc.isDirectory()==true?isFolderExisted=true:isFolderExisted=false:isFolderExisted=false;
于 2013-03-22T13:43:22.773 に答える