【问题标题】:After creating a File, how do I make sure it getting downloaded to the default download folder?创建文件后,如何确保将其下载到默认下载文件夹?
【发布时间】:2017-06-01 11:41:49
【问题描述】:

我正在尝试@tototoshi 的scala-csv 库,它非常简单,如下所示:

def downloadFile = Action {
    val f = new File("out.csv")
    val writer = CSVWriter.open(f)
    writer.writeAll(List(List("a", "b", "c"), List("d", "e", "f")))
    writer.close()
    Ok.sendFile(f, inline = false, _ => f.getName)
  }

但现在我将文件下载到我的项目目录:

我希望它被下载到使用这个功能的人的默认下载文件夹中,我该怎么做?

【问题讨论】:

    标签: scala file csv export-to-csv


    【解决方案1】:

    文件正在下载到我的项目目录

    这与 Scala 或 scala-csv 无关,这只是 new File(String) 构造函数的工作方式:如果您传递像 "out.csv"(或更一般地说,"directory/directory/...")这样的相对路径,它使用工作目录,在IDEA中运行时由“运行配置”设置。请改用绝对路径(Windows 上的"C:/directory/..." 或Linux/Mac 上的"/directory/...")。

    到默认下载文件夹

    在 Java 中没有内置的方法来查找默认下载文件夹,这取决于操作系统。有关 Windows 的答案,请参阅 General Path To Downloads Folder

    【讨论】:

      【解决方案2】:

      您需要自己解析下载文件夹。给定路径,该库将向该路径写入一个 CSV。它将包括其他 CSV 工具,但绝对不包括路径解析代码。

      据我所知,没有 一个 环境变量会指向默认的“下载”目录...

      如果您在 *nix 上,通常下载位于 ~/Downloads,因此您的路径将是 "~/Downloads".replace("~", System.getProperty("user.home"))。然后可以将其传递给java.io.File 的构造函数。

      我不太了解 Windows 的文件系统,无法告诉您这是否也适用于 Windows,但 cursory search 建议它也应该适用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-20
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多