如何更改java.io.File对象中的文件路径位置

时间:2013-12-05 09:02:24

标签: java file-io

这个问题说明了一切。 我有一个指向/home/user/filename1的File对象。

如果我调用file.getAbsolutePath(),那么它将返回/home/user/filename1

我的问题是 -

  1. 我们可以将文件对象内的路径更改为其他位置吗?
  2. 如果是,那怎么样?
  3. 由于

4 个答案:

答案 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

这里有一个有用的库来处理文件。