6

ファイルをアップロードしたいのですが、ネストされたフォルダー環境にあります。ディレクトリを作成してファイルをアップロードするのは問題ありませんが、ネストされたディレクトリを使用すると、フォルダーを作成しようとするとストレージ例外が発生します。コード例を次に示します。

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

        cloudFileDirectory.CreateIfNotExists(); //Exception occur

        var file = cloudFileDirectory.GetFileReference("File.txt");
   }

ディレクトリのディレクトリを作成するメソッドを作成する必要がありますか、それとももっと簡単な解決策がありますか?

4

1 に答える 1

7

ディレクトリのディレクトリを作成するメソッドを作成する必要がありますか、それとももっと簡単な解決策がありますか?

はい、そうする必要があります。フォルダー構造を指定して、SDK に処理させることはできません。1 つのアプローチについては、以下のサンプル コードをご覧ください。

    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...");
        }
    }
于 2016-11-24T14:31:08.123 に答える