获取 Azure 文件共享中的所有文件 (CloudFileDirectory)

我正在寻找一种 C# 方法,它将返回 Azure 文件共享中的所有文件(在所有子目录中)。


有一个例子,但它会引发运行时错误。我已经尝试了从这里获得的下面的代码示例,但是它引发了异常。


我已将代码粘贴到此处,但如果有人有遍历整个 Azure 目录的方法,那么获取文件会很棒。


CloudFileDirectory dir = fclient.GetShareReference(share.ToString()).GetRootDirectoryReference();


foreach (IListFileItem file in dir.ListFilesAndDirectories())   //.Directory.ListFilesAndDirectories())

{

    list_subdir(file);

}   

和方法。


public static void list_subdir(IListFileItem list)

{

    Console.WriteLine("subdir");

    CloudFileDirectory fileDirectory = (CloudFileDirectory)list;

    IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();


    foreach (IListFileItem listItem in fileList)

    {

        if (listItem.GetType() == typeof(Microsoft.WindowsAzure.Storage.File.CloudFileDirectory))

        {

            list_subdir(listItem);

        }

        else

        {

            Console.WriteLine(listItem.Uri.Segments.Last());

        }

    }

}

" 在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__1 1.MoveNext() 

in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-pr-master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 82

--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_01.b__0() 在 C:\Program Files (x86)\Jenkins\workspace\dotnet-split-pr-master\Lib\ClassLibraryCommon\Core\Executor\ Executor.cs:第 41 行


慕斯王
浏览 126回答 1
1回答

慕田峪9158850

我安装了 nuget 包WindowsAzure.Storage 9.3.3 版。下面的代码对我来说很好用,列出了子目录中的所有文件。&nbsp; &nbsp; &nbsp; &nbsp; static void Main(string[] args)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string accountName = "xxx";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string key = "xxxx";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var share = storageAccount.CreateCloudFileClient().GetShareReference("testfolder");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumerable<IListFileItem> fileList = share.GetRootDirectoryReference().ListFilesAndDirectories();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (IListFileItem listItem in fileList)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (listItem.GetType() == typeof(CloudFile))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(listItem.Uri.Segments.Last());&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if(listItem.GetType() == typeof(CloudFileDirectory))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list_subdir(listItem);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine("done now");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.ReadLine();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; public static void list_subdir(IListFileItem list)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Console.WriteLine("subdir");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CloudFileDirectory fileDirectory = (CloudFileDirectory)list;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumerable<IListFileItem> fileList = fileDirectory.ListFilesAndDirectories();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (IListFileItem listItem in fileList)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (listItem.GetType() == typeof(CloudFileDirectory))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list_subdir(listItem);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(listItem.Uri.Segments.Last());&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP