好的,所以我需要重命名很多文件,它们都在同一个目录中。目录中有多个文件夹,其中包含文件,也不需要重命名。
我需要做的是用下划线替换文件名中的任何空格。
我是java的初学者,所以如果只有一个文件我可以自己做,我可以用Java指定文件,但在这种情况下我不能。
例如,如果文件名是“文件编号1”,我需要将其重命名为“file_number_one”。 我还想保持扩展名不变。有许多文件都有不同的扩展名。
非常感谢您的帮助,如果有任何问题,我会尽力回答这些问题。
编辑:
好的,我想出来了,但不是用Java。 使用这些网站here和here我使用windown PowerShell来解决这个问题。
基本打开PowerShell,cd进入目录,然后输入:
dir -Recurse | Rename-Item –NewName { $_.name –replace “ “,”_” }
这将替换目录中所有文件和文件夹中带下划线的所有空格。 对不起,我无法用Java解决这个问题,但这是另一种似乎有用的选择。
答案 0 :(得分:3)
String.replaceAll
替换带下划线的空格。 listFiles
的方法可用于此。答案 1 :(得分:0)
http://people.apache.org/~jochen/commons-io/site/apidocs/org/apache/commons/io/DirectoryWalker.html
将重命名实施到String normalizeName( String )
并使用:
public class FileRenamer extends DirectoryWalker {
public List rename(File startDirectory) {
List results = new LinkedList();
walk(startDirectory, results);
return results;
}
protected boolean handleDirectory(File directory, int depth, Collection results) {
return true;
}
protected void handleFile(File file, int depth, Collection results) {
String newName = convert( file.getName() );
File file2 = new File( file.getParentFile(), newName )
file.renameTo( file2 )
results.add(file);
}
}
new FileRenamer.rename( baseDirectory );