0

我正在考虑IFileProvider使用 Azure 文件存储实现接口。我试图在文档中找到的是,是否有一种方法可以将文件的整个路径发送到 Azure API,rootDirectory/sub1/sub2/example.file或者实际上应该映射到某个递归函数,该函数将在文件存储上采用路径和遍历目录结构?

只是想确保我没有错过任何东西,并为已经存在的东西重新发明轮子。

[更新]

我正在使用适用于 .NET 的 Azure 存储客户端。我不想安装任何东西。我的意图是有几个IFileProviders我可以根据Environment和其他条件进行切换。

因此,例如,如果我的环境是,Cloud那么我将使用IFileProvider通过 Azure 存储客户端使用 Azure 文件服务的实现。接下来,如果我有环境,MyServer那么我将使用服务器本地文件系统。第三种选择是someOther具有该特定实现的环境。

现在,对于他们所有人来说,都IFileProvider使用类似root/sub1/sub2/sub3. 对于 Azure 文件存储,有没有办法一次发送整个路径以获取sub3信息/内容,或者是否应该将路径分成单独的目录并获取每个步骤的参考/内容?

我希望这可以解决这个问题。

4

1 回答 1

1

现在,对于所有这些,IFileProvider 使用类似˙root/sub1/sub2/sub3 的路径运行。对于 Azure 文件存储,有没有办法一次将整个路径发送到 getsub3` 信息/内容,或者应该将路径分解为各个目录并获取每个步骤的参考/内容?

要跨多个子目录访问特定子目录,可以使用如下GetDirectoryReference构造方法:CloudFileDirectory

var fileshare = storageAccount.CreateCloudFileClient().GetShareReference("myshare");
var rootDir = fileshare.GetRootDirectoryReference();
var dir = rootDir.GetDirectoryReference("2017-10-24/15/52");
var items=dir.ListFilesAndDirectories();

要访问子目录下的特定文件,您可以使用GetFileReference返回CloudFile实例的方法如下:

var file=rootDir.GetFileReference("2017-10-24/15/52/2017-10-13-2.png");
于 2017-10-24T08:53:12.547 回答