我的java应用程序几乎已经完成,现在我给它一个画龙点睛。虽然某些代码需要从计算机上的特定目录中读取数据。在我的机器上,我用以下方式做到了:
FileOutputStream fos=new FileOutputStream(C:/User/AnirudhVarma/Document/Appname/foldername/file,true);
但是在用户机器上,我如何确保它在以下目录中创建它?
C:/enduser/appname/folder/file
答案 0 :(得分:2)
代码中的硬编码文件夹结构是非常糟糕的主意。
处理此问题的一种方法是:
您需要具有类似于用户需要输入所需文件夹路径的属性文件。在安装文档中将其作为要求提及。
在您的代码中,您需要确保文件夹在继续之前具有所需的内容。如果无效文件夹,只显示错误消息,并提供正确的信息以设置目录路径。
答案 1 :(得分:1)
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"