1

我正在编写一个读取文件然后处理它们的程序。目前,我正在使用 BufferedReader 从 txt 文件中读取文件列表。此 txt 文件是在命令提示符下生成的:

dir > filelist.txt

然后将其裁剪为仅文件名。

我可以通过以下方式将其合并到我的脚本中:

//pseudo code(needs further directory specification)
Runtime run = Runtime.getRuntime();//pseudo code(needs further directory specification)
Process process = run.exec("dir > filelist.txt");

此命令以以下形式提供包含文件的目录:

dd/mm/yyyy hh:mm       (filesize) file

一旦我有了这个文件,我就可以运行一个正则表达式来提取文件名。

Pattern file = Pattern.compile("(\d){2}/(\d){2}/(\d){4}\s(\d){2}(:)(\d){2}\s(\d+)\s(.+)\.txt");

for (String fileline : filelist) {
    Matcher matchfile = file.matcher(fileline);
    if(matchfile.find()){
        filearray.add(matchfile.group().split("\\s")[3]);
    }
}

有没有更简单的方法从 Java SE 中的目录中获取文件名?这似乎有点啰嗦。

4

3 回答 3

1

使用list()方法

File f = new File("d:\\MyFolder");
String[] fileNames = f.list();

您可以使用以下方法进一步分离文件和目录

isFile()
isDirectory()

/////////////////已编辑//////////////

假设我想知道这个 File 对象是文件还是目录......

File f = new File("d:\\MyFolder");

if (f.isDirectory()) {

    System.out.println("Its a directory");
}
于 2012-07-31T09:52:48.077 回答
1

在 Java 7 中,您拥有nio.2 工具,它们对PathsFiles类更加完整和有用

于 2012-07-31T09:54:39.940 回答
0

在这里,您可以获取示例代码以从文件夹中获取文件列表。

File file = new File("C:/MyFolder/");
    File[] files = file.listFiles();
    for(File f: files){
        System.out.println(f.getName());
    }

您可以从http://java2novice.com/java-file-io-operations/file-list-from-folder/获得更多示例

于 2012-07-31T11:05:23.227 回答