英文:
Path for a file on a Mac without the username in Java
问题
我希望能够在Java程序中通过一些基本的指示打开文本文件,
目前我已经可以打开文件的代码如下:
```java
Desktop desktop = Desktop.getDesktop();
File file = new File(/* 文件路径,这是我关心的部分。 */);
if (file.exists()) {
try {
desktop.open(file);
} catch (IOException e) {
e.printStackTrace();
}
}
这段代码可以正常工作,我目前使用的文件路径是:
"/Users/Box/Documents/text.txt"
我遇到问题的原因是,我想把我的程序发送给朋友,让他试用。我目前的解决方案是添加一个文本字段,用户可以在其中输入用户名,然后文件路径为:
"/Users/" + username + "/Documents/text.txt"(其中username是用户在文本字段中输入的用户名)
除此之外,我还能在哪里存储文件?还有什么其他路径可以使用?有没有一种自动找到用户的方法?我应该将文件存储在根目录下新建的文件夹中吗?
<details>
<summary>英文:</summary>
I want to be able to open a text file with some basic instruction from within a program in Java,
What I currently have to open the file:
Desktop desktop = Desktop.getDesktop();
File file = new File(/* File Path, this is what I am concerned with. */);
if(file.exists())
try {
desktop.open(file);
} catch (IOException e) {e.printStackTrace();}
This works fine, what I have been using for the path is:
"/Users/Box/Documents/text.txt"
The reason I have a problem is because I want to send my program to a friend so that he can try it out. The current solution I have is to have a text field that the user can input their username into and then the path is:
"/Users/" + username + "/Documents/text.txt" (username being the username that is inputed into the text field)
Where else could I store the file or what else could I use for a path? Is there a way to find the user automatically? Should I store the file in a folder made in the root?
</details>
# 答案1
**得分**: 1
如果您希望在用户文件夹下使用固定路径,您可以通过以下方式获取用户名:
String username = System.getProperty("user.name");
或者,您可以使用相对于程序位置的路径,例如`Paths.get("").toAbsolutePath()`,参见 https://stackoverflow.com/questions/4871051/getting-the-current-working-directory-in-java
<details>
<summary>英文:</summary>
If you like to use a fixed path under the user folder, you can get the username via
String username = System.getProperty("user.name");
Alternatively you can use a path relative to the location of the program, for example `Paths.get("").toAbsolutePath()`, see https://stackoverflow.com/questions/4871051/getting-the-current-working-directory-in-java
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论