重命名文件时出错
Error in Renaming Files
虽然这里有很多问题涉及命名文件的错误,但下面的代码试图实现这些示例,但没有明显的原因无法实际更改系统中的文件名。
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()
只获取文件路径的最后一部分。 renameTo
另一方面需要完整路径。所以实际上你最终试图将你的文件移动到不同的目录。
使用:
File nova = new File(dir, newName);
为了重命名原目录下的文件
虽然这里有很多问题涉及命名文件的错误,但下面的代码试图实现这些示例,但没有明显的原因无法实际更改系统中的文件名。
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()
只获取文件路径的最后一部分。 renameTo
另一方面需要完整路径。所以实际上你最终试图将你的文件移动到不同的目录。
使用:
File nova = new File(dir, newName);
为了重命名原目录下的文件