gpt4 book ai didi

c# - 从 Dropbox 上的公共(public)共享文件夹和子文件夹下载图像

转载 作者:行者123 更新时间:2023-12-03 16:48:52 32 4
gpt4 key购买 nike

这类似于我之前的问题:
Downloading images from publicly shared folder on Dropbox

我有这段代码(简化版)需要从公共(public)共享文件夹和所有子文件夹中下载所有图像。

using Dropbox.Api;
using Dropbox.Api.Files;
...
// AccessToken - get it from app console
// FolderToDownload - https://www.dropbox.com/sh/{unicorn_string}?dl=0

using (var dbx = new DropboxClient(_dropboxSettings.AccessToken))
{
var sharedLink = new SharedLink(_dropboxSettings.FolderToDownload);
var sharedFiles = await dbx.Files.ListFolderAsync(path: "", sharedLink: sharedLink);

// var sharedFiles = await dbx.Files.ListFolderAsync(path: "", sharedLink: sharedLink, recursive: true);
// "recursive: true" throws: Error in call to API function "files/list_folder": Recursive list folder is not supported for shared link.

foreach (var entry in sharedFiles.Entries)
{
if (entry.IsFile)
{
var link = await dbx.Sharing.GetSharedLinkFileAsync(url: _dropboxSettings.FolderToDownload, path: "/" + entry.Name);
var byteArray = await link.GetContentAsByteArrayAsync();
}

if (entry.IsFolder)
{
var subFolder = entry.AsFolder;
// var folderContent = await dbx.Files.ListFolderAsync(path: subFolder.Id);
// var subFolderSharedLink = new SharedLink(???);
}
}
}

如何列出所有子文件夹的条目?

最佳答案

对于任何给定的子文件夹,要列出其内容,您需要回拨至 ListFolderAsync再次使用相同的 sharedLink值,但提供 path子文件夹的值,相对于共享链接的根文件夹。

例如,如果您列出文件夹共享链接的内容,并且其中一个条目是名为“SomeFolder”的文件夹,那么要列出“SomeFolder”的内容,您需要进行如下调用:

await dbx.Files.ListFolderAsync(path: "/SomeFolder", sharedLink: sharedLink);

关于c# - 从 Dropbox 上的公共(public)共享文件夹和子文件夹下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62041525/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com