日期:2014-05-20  浏览次数:20899 次

为何多了一个输出,结果就不一样了呢?(File)
我写了一个方法,用于修改一个目录文件夹下文件的扩展名。代码如下:
private static void changeFileExtension(String path,String extension)//path为文件夹路径,extension为文件扩展名
{
File file = new File(path);
File[] files = file.listFiles();
for ( int i = 0;i<files.length;i++ )
{
if (files[i].isFile())
{
String oldFileName = files[i].getName();
int lastIndexOfPoint = oldFileName.lastIndexOf('.');
int fileNameLength = oldFileName.length();

//Get old file's extension
String extensionString = oldFileName.substring(lastIndexOfPoint+1,
fileNameLength);

//Put the file name and the extension name together
String newFileName = (oldFileName.substring(0,lastIndexOfPoint+1)+
extension);
File oldFile = new File(path+"\\"+files[i].getName());
File newFile = new File(path+"\\"+newFileName);
  /**我发现我是真的糊涂了,为何我不加 下面这一句println()的时候文件夹下的文件名还是老样子,没有变化,但是我加了这一句话之后,文件后缀名就真的改成我想要的了,这是为何呢??*/
System.out.println("The newfile name is: "+ newFile.getName());

//Rename the file 
if (newFile.exists())
{
System.out.println("There is a file with the same name: " + 
files[i].getName() + " in the folder");
}
else {
oldFile.renameTo(newFile);
}
System.out.println(files[i].getName());
}
}
}

------解决方案--------------------
没看出问题,测试了一下却是正常的。
------解决方案--------------------
加不加这一句println()是不影响的
测试了一下,去掉这句也一切正常