gpt4 book ai didi

java - Eclipse RCP : InternalPlatform. getDefault().getUserLocation() 不返回 C:\Users\用户名\AppData\Roaming

转载 作者:行者123 更新时间:2023-11-30 07:43:15 24 4
gpt4 key购买 nike

我目前正在将 Eclipse 3.0 应用程序迁移到 4.4。用户数据过去并且仍然应该存储在文件夹C:\Users\username\AppData\Roaming\applicationname

应用程序使用以下代码来读取目录:

public static String getUserDirectory()
{
String directory = InternalPlatform.getDefault().getUserLocation().getFile();
return directory;
}

我知道该代码已被弃用,但以下代码返回相同的结果:

public static String getUserDirectory()
{
String directory = Platform.getUserLocation().getURL().getFile();
return directory;
}

它们都返回C:\Users\username\user,但正如我所说,用户数据应该存储在C:\Users\username\AppData\Roaming\applicationname >。这些方法的行为改变了吗?

我怎样才能意识到我将用户数据存储在C:\Users\username\AppData\Roaming\applicationname下并且我的应用程序仍然可以找到该目录?

我知道这与我不完全理解的环境变量有关。

最佳答案

我手头没有 3.x 目标平台可供比较,但 C:\Users\username\user 看起来完全错误。

如果您对详细信息感兴趣,EquinoxLocations 的构造函数会计算 userLocation 并在未指定默认值的情况下将文字“user”添加到用户的主目录中。

因此,如果您使用 -user @user.home-Dosgi.user.area=@user.home 启动应用程序,则会设置用户位置到C:\Users\用户名\。仍然不是您想要的,但至少有一个合理的值(value)。

我认为这是 Equinox 中的一个错误,建议提交 bugzilla。如果事实证明这种方法有充分的理由,则错误条目仍将作为文档/推理。

同时您可以通过System.getenv( "APPDATA")获取Windows上的主目录。根据this post它将返回漫游主目录

关于java - Eclipse RCP : InternalPlatform. getDefault().getUserLocation() 不返回 C:\Users\用户名\AppData\Roaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com