DropNet返回根文件夹的元数据而不是请求的文件夹

时间:2015-08-07 20:43:47

标签: dropnet

问题:我需要的文件夹的GetMetaData返回根文件夹元数据。

背景: 我正在尝试编写一个小应用程序来下载一个太大的文件夹(数千个文件和多个GB),以便从Dropbox Web界面下载。它试图通过给定目录的子目录进行递归,下载所有文件。

实际发生的是无限循环。应用程序(错误地)获取根文件夹元数据,遍历目录直到它到达我需要的目录,然后开始在根目录中工作,因为这是它收到的元数据集。

目录名称“/ Apps”工作正常但我需要的却没有。文件夹名称有一个下划线和一个大小写字母(没有其他字符)的混合,类似于“/ XYX_DataFolder”。

我的应用拥有“Full Dropbox”权限,并且我使用该帐户授权获取了api密钥。

更改目录名称对我来说不是一个选项。

我正在使用VS2012,DropNet是通过NuGet添加的。

欢迎就此问题提出任何意见。谢谢!

编辑:

运行时版本v4.0.30319 版本1.10.23.0

在Visual Studio属性页面中报告参考。

我授权哪个工作正常,然后使用下面的代码。有些目录工作正常但是当我在上面提到的文件夹上尝试GetMetaData时,我从根文件夹中获取了元数据。

private void DownloadDirectory( string serverDirectory, string clientDirectory ) {
  var meta = m_client.GetMetaData( serverDirectory, false, false );
  foreach ( var item in meta.Contents ) {
    var destinationPath = Path.Combine( clientDirectory, item.Name );
    if ( item.Is_Dir && item.Path == m_serverRootDirectory ) {
      DownloadDirectory( item.Path, destinationPath );
    }
    else {
      //var fileBytes = m_client.GetFile( item.Path );
      //File.WriteAllBytes( destinationPath, fileBytes );
      //textBox1.Text += Environment.NewLine + destinationPath;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

好的,所以我下载了源代码并立即发现了我的问题。我在GetMetaData调用中缺少散列的null,因此它使用了错误的重载。抱歉浪费你的时间......感谢您的回复!