Azure Files を介してフォルダー内のファイルを一覧表示するアプリがあります。C# メソッドを使用する場合:
Directory.GetFiles(@"\\account.file.core.windows.net\xyz")
2000 個のファイルがある場合、約 1 分かかります。
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 秒かかります。なぜこれほどまでに性能に差があるのでしょうか。