使用 Android Dropbox API 检查 Dropbox 上是否存在文件

Check if file exists on Dropbox using Android Dropbox API

我不是经验丰富的 Java/Android 开发人员,我正在尝试使用 Dropbox API 来检查 Dropbox 上是否存在文件 Android。

我没能在 API 中找到任何方法来检查这个。我发现如何做到这一点的唯一方法是使用 try ... catch 并捕捉 DropboxServerException,在我看来这是非常丑陋的。

有没有更好的方法,比如 if (file.exists),来检查文件是否存在?

谢谢!

调用 metadata 并查找具有 404 响应的异常可能是检查 Dropbox 中是否存在单个文件的最佳方法。

根据您要执行的操作,可能有更好的方法:

  1. 如果您无论如何都要枚举所有文件(例如使用增量),则无需询问服务器文件是否存在,因为您可以自己跟踪。
  2. 如果您正在尝试读取该文件,请继续并尝试读取它(如果它不存在则处理异常)。

请注意,这种(伪)代码总是有问题:

if (file.exists()) {
    file.read();
}

如果在检查文件是否存在和尝试读取文件之间删除了文件,会发生什么情况?当您尝试读取文件时,您将收到 404 和异常。所以你需要处理这个的代码......这意味着第一次检查文件是否存在对你没有任何作用。您也可以跳过它(以及相应的服务器往返)。