相关疑难解决方法(0)

如何在Java中获取本地应用程序数据文件夹?

可能重复:
获取本地应用程序数据目录路径的跨平台方式是什么?

我正在寻找一种方法来获取本地应用程序数据文件夹的位置,这是一个特殊的Windows文件夹,用Java.遗憾的是,以下内容仅适用于具有默认设置的英文版Windows XP:

System.getProperty("user.home") + "\\Local Settings\\Application Data"
Run Code Online (Sandbox Code Playgroud)

我想拥有的是.NET中的类似内容:

System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Run Code Online (Sandbox Code Playgroud)

有没有办法在不必调用Windows Shell API的SHGetSpecialFolderLocation的情况下执行此操作?

java windows shell

46
推荐指数
3
解决办法
9万
查看次数

在Java中获取我的文档路径

我需要使用Java找到我的文档路径.以下代码并没有给我"准确"的说明

System.getProperty("user.home");

相反应该是什么?

PS:我不想使用JFileChooser Dirty技巧.

java windows

24
推荐指数
3
解决办法
3万
查看次数

Java - 使用System.getProperty("user.dir")获取主目录

我想知道是否使用:

System.getProperty("user.dir");
Run Code Online (Sandbox Code Playgroud)

获取文件夹的绝对路径是最好的方法吗?我希望将我的应用程序传递到其他计算机上,我需要一个完整的证明方式来获取'home'目录,以便我可以在我需要使用其他文件夹时添加到路径上:

String path = System.getProperty("user.dir");
String otherFolder = path + "\\other";
Run Code Online (Sandbox Code Playgroud)

java

21
推荐指数
3
解决办法
9万
查看次数

下载文件夹的常规路径

我在java中有一个带有文件名和URL的DownloadTask类,下载该文件并将其保存到下载文件夹中.

要将它保存到我的下载文件夹,我就有了这条线

File file = new File("/users/myName/Downloads" + fileName + ".txt");

我可以用什么来替换这个路径,以便任何人都可以运行程序,文件将保存到他们的下载文件夹中?

java unix file download

15
推荐指数
1
解决办法
4万
查看次数

使用Java在Windows上查找用户的My Documents文件夹的正确方法?

无论出于何种原因,我有时需要在Java程序中在Windows上找到当前用户的My Documents文件夹来读取一些文件.但据我所知,没有办法做到没有严重缺陷.

第一个错误的方法:System.getProperty("user.home");
为什么它不起作用:

  • 它只返回\ username \文件夹; 我需要在末尾添加"\ Documents \"以获取Documents文件夹......并且只能使用英语.
  • Sun错误6519127和4787931.Java在Windows上通过读取已弃用的注册表项*来查找用户主文件夹以查找桌面然后获取父项; 此方法有多个已知问题,很容易导致返回完全错误的文件夹.这些错误是3.75岁和8岁,没有修复.

第二种错误的方法:使用注册表读取程序获取用户的个人文件夹,这是我的文档(但是i18n'd).
为什么它不起作用:
虽然它修复了仅限英语的问题,但它仍然使用相同的已弃用的注册表区域,因此错误仍然适用于它.

不推荐使用的注册表项表示使用本机调用(SHGetKnownFolderPath),这显然是我无法用Java完成的.

第三种错误方式:

JFileChooser fr = new JFileChooser();  
FileSystemView fw = fr.getFileSystemView();  
File documents = fw.getDefaultDirectory();
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用:它很棒!
除非它没有.虽然我有一个程序在后台使用这个开放和运行,我打开了一个DirectX游戏(辐射:新维加斯).Java程序立即终止,没有堆栈跟踪.总是可以重现的(对我来说,那个游戏,谁知道还有什么).找不到太阳虫#.

那么有什么方法可以在Windows上从Java中找到没有已知问题的用户的Documents文件夹?

(这是一个很好的大问题.)

*(关键是"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders")

java windows registry documents

13
推荐指数
1
解决办法
1万
查看次数

如何在Java中找到"我的文档"文件夹

我愿意在用户的"我的文档"文件夹中保存文件.

我试过这样的位置:

System.getenv("USERPROFILE") + "\\My Documents\\"
Run Code Online (Sandbox Code Playgroud)

然后,我意识到这不适用于将语言设置为另一种语言的系统,例如法语.

是否有另一种方法可以有效地获取"我的文档"文件夹?

java windows

11
推荐指数
3
解决办法
2万
查看次数

跨平台方式询问用户的文档文件夹?

我正在用Java编写一个跨平台程序,并希望将配置文件粘贴在用户的文档文件夹中(Windows下的"我的文档",适当的Linux下的"文档",以及Mac OS下调用的文件夹),但是我我不知道怎么问Java.

我想远离硬编码的东西(如果我们在Windows上做X,如果我们在Linux上则为Y,如果我们在OS X上则为Z),因为这会给我带来支持的负担肩膀而不是Oracle开发团队.

我已经检查了系统属性列表,但它似乎没有包含用户的文档文件夹.

java cross-platform

9
推荐指数
1
解决办法
6396
查看次数

如何在Java中获取Windows'%APPDATA%位置变量的值?

我正在尝试让我的程序%APPDATA%在用户使用Windows时设置的位置保存其状态.但是,System.getProperty("temp.dir");不回归.为了保存状态,如何%APPDATA%在Windows中获取变量的值?

java windows variables appdata

9
推荐指数
2
解决办法
2万
查看次数

将文件保存到临时文件夹

在基于Java(Spring)的应用程序上工作.我编写了一个方法,将表中的所有数据保存到相应的xls表.现在,我正在编写目录位置并将生成的xls保存在那里.有没有办法让它存储到用户系统的临时位置.假设不同的文件系统将具有不同的临时位置.

java

6
推荐指数
2
解决办法
1万
查看次数

Java System.getProperty("user.home")目录缺少分隔符

每当用户输入"〜"作为参数时,我的程序将其替换为System.getProperty("user.home").

调试后,我看到这用"C:UsersSoulBeaver"而不是"C:/ Users/SoulBeaver"替换"〜".

通过以前关于不正确的user.home文件夹的问题,我发现Java试图从中获取路径

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\

但是,我正在使用Windows 8,似乎没有错:

在这一点上,我假设Java"吃掉"反斜杠...所以我该如何防止这种情况发生呢?

更新

由于代码是被请求的,所以在这里.这取自Allen Holub 解决Java的配置问题

/**
 * For every enum element in the array, treat keys[i].name() as a key
 * and load the associated value from the following places (in order):
 *
 * <ol>
 *     <li>a -D command-line switch (in System properties)</li>
 *     <li>if no -D value found, an environment variable with the same name as the key</li>
 *     <li>if no environment found, the default stored in the Enum element …
Run Code Online (Sandbox Code Playgroud)

java registry home-directory windows-8

2
推荐指数
1
解决办法
4702
查看次数