Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c在Azure存储中创建容器#_C#_Azure_Azure Storage - Fatal编程技术网

C# 使用c在Azure存储中创建容器#

C# 使用c在Azure存储中创建容器#,c#,azure,azure-storage,C#,Azure,Azure Storage,我有以下代码: var cloudStorageAccount = CloudStorageAccount.Parse(this._appSettings.BlobConnectionString); this._cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient(); CloudBlobContainer container = this._cloudBlobClient.GetContainerReference("dpd

我有以下代码:

var cloudStorageAccount = CloudStorageAccount.Parse(this._appSettings.BlobConnectionString);
this._cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();

CloudBlobContainer container = this._cloudBlobClient.GetContainerReference("dpd/textures/test");
await container.CreateIfNotExistsAsync();
我想在dpd/textures/内创建“test”目录,但一直出现以下错误:

请求的URI不代表azure服务器上的任何资源 容器


我做错了什么?

实际上,blob存储中没有真正的目录。目录(不是容器)始终是blob名称的一部分

所以你可以创建一个像“dpd”这样的容器,然后你可以使用任何上传方法来上传一个像myfile.txt这样的文件。上传文件时,您可以在
GetBlockBlobReference
方法中将文件名指定为“textures/test/myfile.txt”。然后自动创建目录“textures/test”

简单代码:

            CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference("test1");
            var myblob = cloudBlobContainer.GetBlockBlobReference("textures/test/myfile.txt");
            myblob.UploadFromFile("your file path");
测试结果:


还要注意的是,如果删除blob(myfile.txt),那么目录“textures/test”也将被删除,因为它是blob的一部分名称。

为了进一步澄清Ivan的答案,blob存储中的所有内容都是blob,例如blob可以是file或directory类型,但正如Ivan所指出的,如果“directory”为空,则Azure将自动删除空的“目录”blob。