【发布时间】:2016-06-02 03:08:09
【问题描述】:
我们有一个应用程序通过 Azure 文件列出文件夹中的文件。当我们使用C#方法时:
Directory.GetFiles(@"\\account.file.core.windows.net\xyz")
当有 2000 个文件时,大约需要一分钟。
如果我们使用 CloudStorageAccount 来做同样的事情:
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileDirectory directory = fileClient.GetShareReference("account").GetRootDirectoryReference().GetDirectoryReference("abc");
Int64 totalLength = 0;
foreach (IListFileItem fileAndDirectory in directory.ListFilesAndDirectories())
{
CloudFile file = (CloudFile)fileAndDirectory;
if (file == null) //must be directory if null
continue;
totalLength += file.Properties.Length;
}
它返回所有文件,但大约需要 10 秒。为什么会有这么大的性能差异?
【问题讨论】:
-
嗨,我正在尝试使用第一种方法,即 system.io 命名空间并使用 Directory.GetFiles 或 Directory.CreateDirectory 但我在任何地方都找不到任何完整的示例/示例。在此之前我们必须做任何步骤吗?我们如何使用 Azure 存储进行身份验证?
-
@MilindThakkar,关于在 Azure 文件存储上管理对象,您可能会发现这篇文章很有用(“使用 .NET 开发 Azure 文件”)docs.microsoft.com/en-us/azure/storage/files/…
标签: c# azure azure-storage smb azure-files