我正在编写一个读取文件然后处理它们的程序。目前,我正在使用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
一旦我有了这个文件,我就可以运行一个Regex来提取文件名。
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中的目录中获取文件名?这看起来有点啰嗦。
答案 0 :(得分: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");
}
答案 1 :(得分:1)
使用Java 7,您拥有 nio.2 tools ,对路径和文件类
更加完整和有用答案 2 :(得分: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/
获取更多示例