写入目录和子目录中的所有txt文件

时间:2016-08-18 02:01:38

标签: java arrays file-io

所以我不是编码学生或任何东西。我这样做是为了一个我想做的个人项目。我花了好几个小时用多个代码试图解决这个问题,而且我非常接近。 我想选择一个目录,然后写入它所拥有的每个子目录中的所有文本文件。我不想列出每个子目录,因为它们随着时间的推移会逐渐增加,我不想编辑这段代码。

当它运行时,它将写入目录中的永久文本文件,但子目录说java.nio.file.AccessDeniedException

这些文件确实存在,并且它位于我的桌面上,因此访问不应该是一个问题

我完全不知道现在做了什么。如果我实际上是一名编程学生,我打赌这不会是一个问题,但我不是这样。任何帮助将不胜感激。

这是我到目前为止所拥有的:

public static void main(String[] args) throws IOException {

    String dirName = "C:\\Users\\Zed\\Desktop\\Test";
    File dir = new File(dirName);
    File[] files = dir.listFiles();
    for(File file : files){



    String s = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);
    if (s.contains("w = 64")) {


    s = s.replace("w = 64", "w = 87.04"); 
    try (FileWriter fw = new FileWriter(file)) {
    fw.write(s);            
    fw.close();



    } catch (FileSystemException e) {
        System.out.println("Access Denied");




            }
        }
    }
}

成功!感谢所有试图帮助的人,我真的很感激。这是我需要的一些代码来完成这项工作!

String[] extensions = new String[] { "ini"};
    List<File> files = (List<File>) FileUtils.listFiles(dir, extensions, true);
    //File[] files = dir.listFiles();
    for(File file : files){

    if (file.isDirectory ()) continue;

1 个答案:

答案 0 :(得分:0)

如果您的dirName路径中有子目录,那么您将尝试写入它们,因此请使用https://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()

进行检查
File[] files = dir.listFiles();
for(File file : files){
   if (file.isDirectory ()) continue;

   ....
}