Azure文件存储-在嵌套目录中上传文件

Hen*_*nke 4 asp.net azure azure-storage-files

我想上传文件,但是要在嵌套文件夹环境中。创建目录并上传文件没有问题,但是当使用嵌套目录时,尝试创建文件夹时出现存储异常。这是一个代码示例。

   CloudFileDirectory rootDirectory = FileShare.GetRootDirectoryReference();
   if (rootDirectory.Exists())
   {
       cloudFileDirectory = rootDirectory.GetDirectoryReference("Folder/SubFolder"); 

        cloudFileDirectory.CreateIfNotExists(); //Exception occur

        var file = cloudFileDirectory.GetFileReference("File.txt");
   }
Run Code Online (Sandbox Code Playgroud)

我是否必须创建一种为目录创建目录的方法,还是有一个更简单的解决方案?

Gau*_*tri 7

我是否必须创建一种为目录创建目录的方法,还是有一个更简单的解决方案?

是的,您需要这样做。您无法指定文件夹结构,而让SDK为您处理。请查看以下示例代码中的一种方法。

    static void NestedDirectoriesTest()
    {
        var cred = new StorageCredentials(accountName, accountKey);
        var account = new CloudStorageAccount(cred, true);
        var client = account.CreateCloudFileClient();
        var share = client.GetShareReference("temp2");
        share.CreateIfNotExists();
        var cloudFileDirectory = share.GetRootDirectoryReference();
        var nestedFolderStructure = "Folder/SubFolder";
        var delimiter = new char[] { '/' }; 
        var nestedFolderArray = nestedFolderStructure.Split(delimiter);
        for (var i=0; i<nestedFolderArray.Length; i++)
        {
            cloudFileDirectory = cloudFileDirectory.GetDirectoryReference(nestedFolderArray[i]);
            cloudFileDirectory.CreateIfNotExists();
            Console.WriteLine(cloudFileDirectory.Name + " created...");
        }
    }
Run Code Online (Sandbox Code Playgroud)