这是我的java代码,用于查找目录中文件的位置,并将它们作为输出写入txt文件,但在编译后,内容不会写入txt文件。请给我一些解决方案。
public void listFilesAndFilesSubDirectories(String directoryName)
{
File directory = new File(directoryName);
List<String> list=new ArrayList<String> ();
//get all the files from a directory
if(directory.exists()){
File[] fList = directory.listFiles();
for (File file : fList){
if (file.isFile()){
if(file.getName().endsWith(".c")==true || file.getName().endsWith(".h")==true){
// System.out.println(file.getAbsolutePath());
list.add(file.getAbsolutePath());
}
} else if (file.isDirectory()){
listFilesAndFilesSubDirectories(file.getAbsolutePath());
}
else break;
}
try{
FileWriter fw=new FileWriter("C:/Users/Public/afreen/module.txt");
BufferedWriter out = new BufferedWriter(fw);
for(String str: list)
{
System.out.println(str);
out.write(str);
}
out.flush();
out.close();
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("Success....");
}
else
{
System.out.println("The directory is not exist , please enter a valid path");
}
}
上面的代码将输入作为目录的路径,并找到我想要的文件的位置。但是这些位置无法写入txt文件,我找不到实际的原因,请帮帮我找出它的解决方案。
答案 0 :(得分:0)
每次调用方法(递归)时都会创建一个新列表并向其添加目录名,但该列表不是您要打印的列表,请尝试使用共享资源。
例如使用全局变量等。