我的 java 应用程序几乎完成了,现在我要给它画龙点睛了。尽管某些代码需要从计算机上的特定目录中读取数据。在我的机器上,我通过以下方式完成了它:
FileOutputStream fos=new FileOutputStream(C:/User/AnirudhVarma/Document/Appname/foldername/file,true);
但是在用户机器上,我如何确保它在以下目录中创建它?
C:/enduser/appname/folder/file
我的 java 应用程序几乎完成了,现在我要给它画龙点睛了。尽管某些代码需要从计算机上的特定目录中读取数据。在我的机器上,我通过以下方式完成了它:
FileOutputStream fos=new FileOutputStream(C:/User/AnirudhVarma/Document/Appname/foldername/file,true);
但是在用户机器上,我如何确保它在以下目录中创建它?
C:/enduser/appname/folder/file
代码中的硬编码文件夹结构是非常糟糕的主意。
处理此问题的一种方法是:
您需要有一个类似于用户需要输入所需文件夹路径的属性文件。在安装文档中将此作为要求提及。
在您的代码中,您需要在继续之前确保文件夹具有所需的内容。如果文件夹无效,则仅显示错误消息以及设置目录路径的正确信息。
System.getProperty("user.dir")
将返回C:/User/AnirudhVarma
您的机器。从那里,我建议你需要考虑平台。在windows下,你应该将这类信息存储到AppData
文件夹中。
所以你最终会得到类似的东西System.getProperty("user.dir") + File.seperator + "AppData/Appname/foldername/file"
在 MacOS 下,我相信惯例是.AppName
改用,比如System.getProperty("user.dir") + File.seperator + ".Appname/foldername/file"