0

既知のディレクトリにあるすべての .txt ファイルを選択しようとしています。たとえば、C:/../Desktop/ というパスを知っていて、デスクトップにあるすべての .txt ファイルを取得したいと考えています。

では、どの正規表現を使用する必要があり、どのように検索できますか? Javaについての知識はあまりありません。あなたが私を助けてくれたら、私はとても幸せです。

String regularExpression = ?

String path = "C:/../Desktop/";
Pattern pattern = Pattern.compile(regularExpression);
boolean isMatched = Pattern.matches(regularExpression,path);
4

4 に答える 4

5

使用Files.newDirectoryStream:

import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws Exception {
        Path dir = Paths.get("/tmp", "subdir", "subsubdir");
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.txt")) {
            for (Path path : stream) {
                System.out.println(path.getFileName());
            }
        }    
    }
}

PathWindows では、の説明に従って、ディレクトリの をビルドしPaths.getます。このメソッドは、一緒にパスを構築する 1 つ以上のパラメーターを受け入れます。私の例では、パラメータ/tmpsubdir、およびsubsubdir結果は/tmp/subdir/subsubdir. C:Windows では、おそらくとのようなセグメントからパスを作成しますDesktop

于 2013-10-18T10:13:25.873 に答える
2

答えは次のとおりです。

String regularExpression = ".*\.txt";
于 2013-10-18T10:10:38.650 に答える
0

"path".endsWith(".txt")速くなります

于 2013-10-18T10:16:14.667 に答える