gpt4 book ai didi

java - 重命名文件时出错

转载 作者:行者123 更新时间:2023-12-02 10:58:11 25 4
gpt4 key购买 nike

尽管这里有很多问题都涉及命名文件的错误,但下面的代码尝试实现这些示例,但由于没有明显原因而未能实际更改系统中的文件名称。

public static void main(String[] args)
{
File dir = new File("E:/Vglut2 pharmacology/60730/");
File[] directoryListing = dir.listFiles();
for (File filius : directoryListing) {
try
{
String oldName = filius.getName();
int imgNum = returnImageNumber(oldName);
double imgMag = returnImageMagnification(oldName);
String newName = oldName.substring(0, oldName.indexOf('_')).concat('_' + String.valueOf(imgNum)).concat('_' + String.valueOf(imgMag));
File nova = new File(newName);
filius.renameTo(nova);
System.out.println(newName);
}
catch(Exception e)
{
e.printStackTrace();
}

}
}

我通过打印测试的结果字符串提供了所需的最终名称,但是最终文件系统保持不变。之前的堆栈溢出问题的类似示例如下所示 -

File dir = new File("D:/xyz");

if (dir.isDirectory()) { // make sure it's a directory
for (final File f : dir.listFiles()) {
try {
File newfile =new File("newfile.txt");

if(f.renameTo(newfile)){
System.out.println("Rename succesful");
}else{
System.out.println("Rename failed");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

正如所见,我无法判断哪些差异会影响此过程的可行性。注意如果与此相关,我正在以管理员身份运行 Windows 10 家庭版。感谢您的帮助。

最佳答案

filius.getName() 仅获取文件路径的最后一部分。另一方面,renameTo 需要完整路径。因此,实际上您最终会尝试将文件移动到不同的目录中。

用途:

File nova = new File(dir, newName);

以便重命名原始目录中的文件。

关于java - 重命名文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com