У нас есть приложение, которое выводит список файлов в папке через Файлы Azure. Когда мы используем метод С#:
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 секунд. Почему такая большая разница в производительности?