所以我不是编码学生或任何东西。我这样做是为了一个我想做的个人项目。我花了好几个小时用多个代码试图解决这个问题,而且我非常接近。 我想选择一个目录,然后写入它所拥有的每个子目录中的所有文本文件。我不想列出每个子目录,因为它们随着时间的推移会逐渐增加,我不想编辑这段代码。
当它运行时,它将写入目录中的永久文本文件,但子目录说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;
答案 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;
....
}