Dav*_*sry 5 io groovy file file-rename
我正在尝试使用 Groovy 重命名目录中的文件,但我似乎无法理解它是如何工作的。
这是我的脚本:
import groovy.io.FileType
def dir = new File("C:/Users/????/Downloads/Busta_Rhymes-Genesis-(Retail)-2001-HHI")
def replace = {
if (it == '_') {
' '
}
}
String empty = ""
dir.eachFile (FileType.FILES) { file ->
String newName = file.name
newName = newName.replaceAll(~/Busta_Rhymes/, "$empty")
newName = newName.replaceAll(~/feat/, "ft")
newName = newName.replaceAll(~/-HHI/, "$empty")
newName = newName.replaceAll(~/--/, "-")
newName = newName.collectReplacements(replace)
file.renameTo newName
println file.name
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,文件的名称没有按预期更改。我想知道我怎么能让这个工作。
这里有很多错误:
您的dir变量不是目录;它是您实际要更改的目录中的文件。改变这一行:
dir.eachFile (FileType.FILES) { file ->
Run Code Online (Sandbox Code Playgroud)
对此:
dir.parentFile.eachFile (FileType.FILES) { file ->
Run Code Online (Sandbox Code Playgroud)该renameTo方法不会重命名本地名称(我知道,非常违反直觉),而是重命名路径。所以更改以下内容:
String newName = file.name
Run Code Online (Sandbox Code Playgroud)
对此:
String newName = file.path
Run Code Online (Sandbox Code Playgroud)现在,出于某种超出我理解的原因,println file.name 仍然打印出旧名称。但是,如果您查看实际目录后记,您将看到该文件已在目录中正确重命名。
| 归档时间: |
|
| 查看次数: |
9042 次 |
| 最近记录: |