首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >groovy多文件重命名:不工作

groovy多文件重命名:不工作
EN

Stack Overflow用户
提问于 2018-05-24 21:49:58
回答 3查看 812关注 0票数 1

我试图以一种特定的方式重命名目录中的多个CSV文件。代码非常简单,但不确定是什么原因没有显示任何输出,也没有完成任务。谁能看看我的代码,让我知道我哪里出错了吗?

代码语言:javascript
运行
复制
import static groovy.io.FileType.*
import static groovy.io.FileVisitResult.*

try{
def workDir = 'C:\\Users\\myUser\\Desktop\\testFiles'
def userInputFileName = "ppi"
def meds = "11223344"
new File("${workDir}").eachFileRecurse(FILES) {
    if(it.name.endsWith('.csv')) {
        println(it)
        it.renameTo(new File(${userInputFileName} + "_" + ${meds} + "_" + file.getName(), file.getName()))
    }
}
}
catch(Exception e){
println(e)
}

Existing File Name: file-234-ggfd-43445fh.csv
To be converted file name: ${userInputFileName}_${meds}_file-234-ggfd-43445fh.csv

评论?Groovy版本:2.4.15

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-25 01:34:14

你把$variableName和variableName混在一起。

代码语言:javascript
运行
复制
  it.renameTo(new File(${userInputFileName} + "_" + ${meds} + "_" + file.getName(), file.getName()))

$variableName用于在字符串( GString)类型情况下使用。以下几点应该可行。

代码语言:javascript
运行
复制
 it.renameTo(new File(userInputFileName + "_${meds}_" + file.getName(), file.getName()))
票数 1
EN

Stack Overflow用户

发布于 2018-05-25 01:40:45

这对我来说是可行的,使用data作为目录。请注意,为了清晰起见,它将一些线分开:

代码语言:javascript
运行
复制
import static groovy.io.FileType.*
import static groovy.io.FileVisitResult.*

def workDir = 'data'
def userInputFileName = "ppi"
def meds = "11223344"

new File("${workDir}").eachFileRecurse(FILES) {
    if (it.name.endsWith('.csv')) {
        println(it)
        def destPath = "${it.parent}${File.separator}${userInputFileName}_${meds}_${it.name}" 
        def dest = new File(destPath)
        it.renameTo(dest)
        assert dest.exists()
        assert ! it.exists()
    }
}
票数 1
EN

Stack Overflow用户

发布于 2018-05-25 01:45:45

你征求意见:

您的代码中有许多错误。不是很奇怪的错误。编程错误。

以下是工作代码:

代码语言:javascript
运行
复制
import static groovy.io.FileType.*
import static groovy.io.FileVisitResult.*

try {
    def workDir = 'C:/Users/myUser/Desktop/testFiles' as File
    def userInputFileName = "ppi"
    def meds = "11223344"
    workDir.eachFileRecurse(FILES) { file ->
        if (file.name.endsWith('.csv')) {
            println(file)
            def target = new File(workDir, "${userInputFileName}_${meds}_${file.name}")
            file.renameTo(target)
            assert target.exists()
            assert !file.exists()
        }
    }
}
catch (Exception e) {
    println(e)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50518670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档