当前位置: 首页 > 知识库问答 >
问题:

如何在Java中更改文件的路径名?

程和蔼
2023-03-14

我在文本编辑器中有一个另存为...功能。我想做一个另存为,保存到一个新文件,但是我要保存的永久文件现在应该总是这个新文件。所以当我点击我的另一个按钮,保存,而不是保存到以前的位置,将继续保存到用JFileChooser选择的位置。

我有一个名为currentFile的文件对象,它应该链接到通过“另存为”选择的文件。我目前正在通过在我的按钮操作执行功能中创建一个名为fileName的文件,然后将currentFile设置为该文件来确保这一点

    File fileName = new File(fileChoice.getSelectedFile() + ".txt");
    currentFile = fileName;

我想知道如果我不创建新文件也能实现同样的事情...?在我看来,新文件创建遵循File(String路径名)构造函数,但似乎没有方法来设置文件的路径名。

共有2个答案

柯奕
2023-03-14

您要求更改路径名,但您真正想要的是移动文件。文件#move会帮你做到这一点。

Path path = Paths.get("my", "path", "to", "file.txt");

Path moveToPath = Paths.get("my", "path", "to", "moved", "file.txt");

Path moveResult = Files.move(path, moveToPath, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.ATOMIC_MOVE);

if (!moveToPath.equals(moveResult)) {
    throw new IllegalStateException("Unable to move file to requested location.");
}
谭绍晖
2023-03-14

您不能更改文件路径,因为您可以在文档和以下答案中阅读:

File类的实例是不可变的;也就是说,一旦创建,由File对象表示的抽象路径名将永远不会更改

所以你需要创建另一个文件实例。

方法还使用文件的另一个实例作为参数来更改路径

File fileToMove = new File("path/to/your/oldfile.txt");
boolean isMoved = fileToMove.renameTo(new File("path/to/your/newfile.txt"));

你也可以阅读这篇文章,有几种方法可以重命名或移动文件。

 类似资料:
  • 我有一个Maven项目,我试图使用javafx(我使用Eclipse)我想改变我的文件的路径。我有过 这在下一个文件夹结构中运行良好 但是我想要像 我尝试了

  • 问题内容: 我正在使用Debian。我安装了Python 3.2.3。Python 3的路径是/ usr / bin / python3。如何在Spyder中更改它? 问题答案: 按下以打开“首选项”窗口。在此窗口中,选择左侧的项目,然后选择选项卡。Python可执行文件的路径就在此处。

  • 问题说明了一切。我有一个文件对象,它指向。 如果我打电话给档案。getAbsolutePath()则返回 我的问题是- 我们可以将文件对象内的路径更改到不同的位置吗? 如果是,那怎么做? 谢谢

  • 问题内容: 我已经为“ Debian Linux”创建了一个Java应用程序。现在,我希望该应用程序读取放置在指定该应用程序的jar文件的目录中的文件。那么在File Object的参数中要指定什么呢? 在上述声明中,作为参数指定相对文件路径的参数是什么,该相对文件路径表示放置应用程序的jar文件的路径? 问题答案: 如果您知道文件的名称,那么当然 如果您不知道名称,则可以使用File对象的lis

  • 问题内容: 我想动态更改log4j日志文件的路径和文件名。 我已经阅读了很多页面,几乎每个页面都告诉我应该使用此处的系统属性: [如何动态更改log4j日志文件?](http://codingdict.com/questions/141150 所以我的log4j.properties文件看起来像这样: 在我的主要方法中,我将设置新的系统属性: 但是我只是得到一个错误: 当我尝试使用以下命令读取设置

  • 我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?