【问题标题】:How to access generic user's My Downloads folder in Java?如何在 Java 中访问通用用户的“我的下载”文件夹?
【发布时间】:2014-08-13 21:35:29
【问题描述】:

我正在使用 Chrome 编写一些 Selenium WebDriver 和 AutoIt Java 测试。 当我在 Chrome 中下载文件时,它会自动将其下载到我计算机上的“下载”文件夹中。 我正在与存储库中的多个其他用户共享此代码项目,因此我不想将我的下载文件夹硬编码到其中包含我的特定用户名。

我的意思是假设我计算机上的用户名是“Eamon”。我机器上的下载文件夹是“C:\Users\Eamon\Downloads”,但假设我的朋友 Mark 从共享存储库下载项目,他的下载文件夹将位于“C:\Users\Mark\Downloads, " 但是当他从存储库中拉出以查看我更新的代码时,下载位置仍将被硬编码为 ""C:\Users\Eamon\Downloads",这将导致 "文件夹不存在" 错误。

在 java 中有没有一种方法可以访问机器上的通用下载文件夹,该文件夹会根据机器用户的身份而改变?这对我的测试很有帮助。

【问题讨论】:

标签: java selenium download automation autoit


【解决方案1】:

对于 Windows 机器:

new File("C:/Users/" + System.getProperty("user.name") + "/Downloads/");

可以对任何其他操作系统使用类似的 sn-ps。

【讨论】:

  • 非英文windows安装怎么办(不仅windows,gnu/linux文件夹也可以国际化)?不会那样调用那里的目录。
  • 问题更多是关于如何注入用户名。为了回答你,我实际上很确定这条路径在非英语配置中仍然有效,至少当我用法语配置 Windows 时是这样。
  • 显然,至少对于 Program Files 而言并非如此:samlogic.net/articles/…。这似乎暗示您可以依赖包含这些文件夹的本地化名称的环境变量
【解决方案2】:

String myHomePath= System.getProperty("user.home");

文件 file = new File(myHomePath+"/Downloads/" + fileName);

注意: 给出具有适当扩展名的文件名,例如 foo.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2011-12-16
    • 2018-04-29
    • 2022-01-26
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多