我遵循了question:
现在在我的情况下,我有720个以这种方式命名的文件:“dom 24 mar 2013_00.50.35_128.txt”,每个文件都有不同的日期和时间。在测试阶段,我使用Scanner和特定的txt文件对其进行一些操作:
扫描仪s =新扫描仪(新文件(“stuff.txt”));
我的问题是:
如何重新使用扫描仪并读取所有720个文件而无需在扫描仪上设置准确的名称?
由于
答案 0 :(得分:14)
假设您在一个地方拥有所有文件:
File dir = new File("path/to/files/");
for (File file : dir.listFiles()) {
Scanner s = new Scanner(file);
...
s.close();
}
请注意,如果您有任何不想包含的文件,可以listFiles()
FileFilter
个参数来过滤它们。
答案 1 :(得分:6)
是的,通过将文件对象指向目录来创建文件对象,然后列出该目录的文件。
File dir = new File("Dir/ToYour/Files");
if(dir.isDir()) {
for(File file : dir.listFiles()) {
if(file.isFile()) {
//do stuff on a file
}
}
} else {
//do stuff on a file
}
答案 2 :(得分:3)
你可以这样试试
File folder = new File("D:\\DestFile");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
if (file.isFile()&&(file.getName().substring(file.getName().lastIndexOf('.')+1).equals("txt"))) {
// Scanner
}
}
答案 3 :(得分:1)
File file = new File(folderNameFromWhereToRead);
if(file!=null && file.exists()){
File[] listOfFiles = file.listFiles();
if(listOfFiles!=null){
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
// DO work
}
}
}
}