这个问题说明了一切。
我有一个指向/home/user/filename1
的File对象。
如果我调用file.getAbsolutePath(),那么它将返回/home/user/filename1
我的问题是 -
由于
答案 0 :(得分:4)
“File类的实例是不可变的;也就是说,一旦创建,File对象表示的抽象路径名永远不会改变。”
来自档案javadoc。
答案 1 :(得分:1)
我开发了一个重命名文件的代码,我必须以递归方式将文件保存在同一位置。我认为以下代码可以帮助您达到某种程度。我必须在我的文件名中替换“-a”并将其保存在同一文件夹中。如果需要代替“destPath”,您可以给出字符串路径的目标路径。我想这可能会对你有帮助。
File oldfile =new File(file.getAbsolutePath());
String origPath = file.getCanonicalPath();
String destPath = origPath.replace(file.getName(),"");
String destFile = file.getName();
String n_destFile = destFile.replace("-a", "");
File newfile =new File(destPath+n_destFile);
答案 2 :(得分:0)
除了保存文件路径的字符串之外,文件内部没别的。所以这不可能。为什么你甚至想做这样的事情?除非您已将文件移动到其他位置?
答案 3 :(得分:0)
正如之前提到的那样,File与许多java API类一样是不可变的。也许你想要的是将文件从某个地方复制到其他地方?请记住,File对象没有实际绑定到文件的内容,并且不允许您修改或移动它。
查看Apache Commons IO
http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/IOUtils.html
这里有一个有用的库来处理文件。