0

我正在编写一个 Java 应用程序,它写入许多文件,然后读取文件以获取它们的值。我正在使用 InstallShield 在 下安装应用程序C:\Program Files,这通常是创建临时文件的位置。但是,在使用 Windows 7 时,文件是在用户临时文件夹下创建的,名称是随机的。

这是我的代码...

File usersTemp = File.createTempFile("users", null,temp);

这是生成的文件...

C:\Users\TP\AppData\Local\Temp\users2343200092608531612.tmp

由于文件是使用随机数生成的,因此很难检索文件以进行处理。有一个更好的方法吗?

4

3 回答 3

2

除非您以超级用户身份运行(您可能不是),否则您只能编辑用户主目录中的文件,您可以使用user.home 系统属性找到该目录:

System.getProperty("user.home")

因此,如果您想在应用程序的应用程序数据文件夹中保存文件:

File appDataFolder = new File(System.getProperty("user.home"), "Local Settings\\Application Data\\YourProgramName");

然后将东西保存在该文件夹下,它们会一直存在。

于 2012-04-11T02:38:16.327 回答
1

是否有某些原因不能正常保存文件(随意命名)?我已经为 Windows 7 编写了许多 Java 程序,并且在保存文件时没有遇到任何问题。

只需使用 FileOutputStream 或您通常用来保存文件的任何方法。

于 2012-04-11T02:34:12.097 回答
1

临时文件的定义是它应该只存在很短的时间。似乎您想要创建一个将持续更长时间的文件,可能会在应用程序运行之间保留?如果是这种情况,您应该创建一个具有正确名称的文件...

new File("c:\filename.txt").createNewFile();

这样,无论您在什么操作系统上运行应用程序,您都可以选择合适的目录和名称。

于 2012-04-11T02:35:43.113 回答