Java 重命名文件时出错

Java 重命名文件时出错,java,file,rename,file-rename,Java,File,Rename,File Rename,尽管这里有许多问题涉及到命名文件的错误,但下面的代码试图实现这些示例,但由于没有明显的原因,无法实际更改系统中文件的名称 public static void main(String[] args) { File dir = new File("E:/Vglut2 pharmacology/60730/"); File[] directoryListing = dir.listFiles(); for (File filius : directoryListing) {

尽管这里有许多问题涉及到命名文件的错误,但下面的代码试图实现这些示例,但由于没有明显的原因,无法实际更改系统中文件的名称

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 Home edition。感谢您的帮助。

filius.getName()仅获取文件路径的最后一部分<另一方面,代码>重命名到需要完整路径。因此,实际上,您最终尝试将文件移动到另一个目录中

使用:

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

File nova = new File(dir, newName);