关于文件重命名

来源:互联网 发布:tts是什么软件 编辑:程序博客网 时间:2024/06/05 15:03

如下图片,如果传的参数是后台获取的fileName 和filePath


  这些参数是遍历文件时候获取的值,使用ajax来重命名这样的话会产生问题,首次重命名成功之后,fileName没有获取后台的更新 而${this}.val()是获取鼠标失去焦点之后需要重名的newName,是获取inptu的value值

后台代码如下:        

   if (!oldname.equals(newname)) {// 新的文件名和以前文件名不同时,才有必要进行重命名

                File oldfile = new File(path + oldname);
                File newfile = new File(path + newname);
                if (newfile.exists()) {// 若在该目录下已经有一个文件和新文件名相同,则不允许重命名
                    issame = 1;
                } else {
                    issame = 2;
                    oldfile.renameTo(newfile);
                }

            }

如此判断newfile.exists() 时候将为true,因为datafile[i].name第一次遍历列表的时候值已经固定,不会改变,因此在判定oldname.equals(newname)为false ,在此情况下,如果重命名的名称和第一次改后的名字一样的话,将会报    “ 以存在相同的文件名称”

 因此解决的方式一、刷新整个树,让datafile[i].name的值跟着改变

方式二、改变传递值的方式:不再传递datafile[i].name 而是用input的id ${#"id"}.val();来获取要传递的name值