【问题标题】:How to upload a folder and its subdirectories to a Dropbox account?如何将文件夹及其子目录上传到 Dropbox 帐户?
【发布时间】:2015-02-22 17:37:52
【问题描述】:

我目前可以使用 Dropbox API 使用以下代码将文件上传到 Dropbox 帐户。

DbxEntry.File result = client.uploadFile("/" + inputFile.getName(), DbxWriteMode.add(), inputFile.length(), inputStream);

但是如何使用 Dropbox API 上传文件夹及其子目录和文件?我尝试了以下步骤来上传整个文件夹和子文件夹:

  1. 列出本地目录的内容。
  2. 对于本地目录中的每个项目:
  3. 如果项目是文件,则将文件上传到服务器。
  4. 如果项目是目录:
  5. 在服务器上创建目录。
  6. 通过重复步骤 1、2 和 3 上传此子目录。
  7. 如果目录为空或处理完最后一项则返回

但是当我尝试在inputstream 中递归打开文件夹时,上述步骤会导致文件夹FileNotFoundException

【问题讨论】:

  • 您描述的步骤听起来不错,所以我认为您的代码中存在错误。如果您共享代码,也许有人可以帮助发现问题。您的描述中的一个可能提示:“当我尝试在输入流中递归打开文件夹时”......您不会使用 InputStream 来“打开”文件夹。

标签: java file recursion dropbox-api


【解决方案1】:

您实际上可以使用我的两个项目来实现这一点:

设置第一个项目的说明在它的 README 中,一旦你完成,它会很简单:

final Path srcdir = Paths.get("dir/on/your/disk");
try (
    final FileSystem dropboxfs = seeReadmeForInstructions();
) {
    final Path dstdir = dropboxfs.getPath("/target/dir");
    Files.createDirectories(dstdir);
    MoreFiles.copyRecursive(srcdir, dstdir, RecursionMode.FAIL_FAST);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2016-07-15
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多