我尝试以编程方式重命名整个目录。该目录位于安装在本地文件系统上的服务器上。我正在尝试这样做:
public static void main(String[] args) {
File dir = new File("/Volumes/video/Serien/Scrubs/Season 1");
System.out.println("Start renaming: " + dir);
String[] files = dir.list();
for (String file : files) {
System.out.println("Old name: " + file);
File renamedFile = new File(file);
System.out.println(renamedFile.toString());
boolean success = renamedFile.renameTo(new File("Test " + renamedFile.toString()));
System.out.println("New name: "+ renamedFile.toString());
System.out.println(success);
break;
}
}
我现在只尝试重命名第一个,但它返回false并且不重命名。
所以提示为什么?我没有任何例外。我认为这是因为服务器需要身份验证?
编辑:由于renameTo()似乎与平台有关:我正在使用Lion OSX
答案 0 :(得分:2)
尝试重命名旧目录和重命名目录时,请尝试使用完整路径+目录名称。我相信list()只返回没有完整路径的目录名。我以前遇到过类似的问题,当我这样做时它就有用了。希望这也适合你。