C# 将文件上载到Azure文件存储
我正在尝试将文件上载到我的Azure文件存储帐户 这是我的代码:C# 将文件上载到Azure文件存储,c#,azure,azure-storage,azure-storage-files,C#,Azure,Azure Storage,Azure Storage Files,我正在尝试将文件上载到我的Azure文件存储帐户 这是我的代码: CloudStorageAccount storageAccount = CloudStorageAccount.Parse("myConnString"); CloudFileClient fileClient = storageAccount.CreateCloudFileClient(); CloudFileShare share = fileClient.GetShare
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("myConnString");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("myFileStorage");
if (await share.ExistsAsync())
{
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
CloudFileDirectory sampleDir = rootDir.GetDirectoryReference("/folder1/folder2/");
CloudFile file = sampleDir.GetFileReference("fileName.jpg");
using Stream fileStream = new MemoryStream(data);
await file.UploadFromStreamAsync(fileStream);
}
我得到这个错误:
指定的父路径不存在
在这一行之后:
CloudFile file = sampleDir.GetFileReference("fileName");
文件
具有以下uri:
https://myFileStorage.file.core.windows.net/myFileStorage/folder1/folder2/fileName.jpg
i、 e.如预期的那样
当前我的文件存储为空,没有文件/文件夹。如果自定义文件夹不存在,如何创建它们?您可以使用
CloudFileDirectory.BeginCreateIfNotExists
方法
如果只使用并创建一个目录(无子目录),则可以直接使用CreateIfNotExistsAsync()
方法创建目录
但有一件事您应该记住,对于文件共享,SDK不支持创建包含子目录的目录,如您的示例中的“folder1/folder2”。解决方法是逐个创建这些目录
以下是您案例的示例代码,创建一个包含子目录的目录:
static async void UploadFiles()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connection_string");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("file_share");
if (await share.ExistsAsync())
{
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
//define your directories like below:
var myfolder = "folder1/folder2";
var delimiter = new char[] { '/' };
var nestedFolderArray = myfolder.Split(delimiter);
for (var i = 0; i < nestedFolderArray.Length; i++)
{
rootDir = rootDir.GetDirectoryReference(nestedFolderArray[i]);
await rootDir.CreateIfNotExistsAsync();
Console.WriteLine(rootDir.Name + " created...");
}
CloudFile file = rootDir.GetFileReference("fileName.jpg");
byte[] data = File.ReadAllBytes(@"file_local_path");
Stream fileStream = new MemoryStream(data);
await file.UploadFromStreamAsync(fileStream);
}
}
static async void UploadFiles()
{
CloudStorageAccount-storageAccount=CloudStorageAccount.Parse(“连接字符串”);
CloudFileClient fileClient=storageAccount.CreateCloudFileClient();
CloudFileShare=fileClient.GetShareReference(“文件共享”);
if(等待share.ExistsAsync())
{
CloudFileDirectory rootDir=share.GetRootDirectoryReference();
//如下所示定义您的目录:
var myfolder=“folder1/folder2”;
变量分隔符=新字符[]{'/'};
var nestedFolderArray=myfolder.Split(分隔符);
对于(变量i=0;i
测试结果=>将创建目录并将文件上载到azure: