2017-05-04 13 views
0

私はCSVファイルのみを含むzipファイルをアップロードしようとしています。 今私は、抽出したディレクトリにcsvファイルのみが含まれているファイルデータを取得する前に検証する必要がありますcsvファイルを含む他の子フォルダ/ディレクトリではありません?Java:ディレクトリをチェックする方法は、ファイルのみを含む

+0

うーん、私はあなたの最高のショットが '呼び出しLISTFILES()'し、その配列をフィルタリングすることであると思いますが、あなたがすることができJavaストリームを使用して宣言(Java 8が必要)またはforループで実行することができます – niceman

+1

'isDirectory'は' File'オブジェクトがディレクトリであるかどうかをチェックするためのもので、拡張機能を利用するにはapache-commons IOを使用できますここで:http://stackoverflow.com/questions/3571223/how-do-i-get-the-file-extension-of-a-file-in-java – niceman

+1

これはあなたを助けることができます: http:// stackoverflow。 com/qu estions/1844688/read-all-files-in-a-folder 次に、フォルダ内のファイル/ディレクトリを確認できます – Manuel

答えて

0

パスがあなたの文字列であると仮定します。

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 

それとも、NIOクラスファイルを使用して、このようなものを確認することができます。

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 
0

あなたはそれをこのように行うことがあります。

File rootDir = new File("/my/path/to/exploded/zip/file"); 
boolean onlyFiles = Arrays.stream(rootDir.list()) 
        .allMatch(filename -> new File(rootDir, filename).isFile()); 

しかし、それだけを確認しますが、あなたのrootDir以下のすべてのファイルは、ファイルやディレクトリはないです。パス内の要素のいずれかがディレクトリであるかどうか、あなたが確認することができますJavaの8を使用して

File rootDir = new File("/"); 
boolean onlyCsvFiles = Arrays.stream(rootDir.list()) 
         .allMatch(filename -> new File(rootDir, filename).isFile() && 
              filename.endsWith(".csv")); 
0

:場合 実装次がtrueを返すすべてのファイルが.csvのような特定の拡張子で終わるをチェックする別の条件を追加することフォルダはパスC:¥Fooにあります。

String pathString = "C:\\Foo"; 
Path myPath = Paths.get(pathString); 
boolean f = Files.list(myPath).anyMatch(x -> Files.isDirectory(x)); 
System.out.println(f); 
関連する問題