Azure 文件存储 - 在嵌套目录中上传文件
Azure file storage - Upload file in nested directories
我想在嵌套文件夹环境中上传文件。创建目录和上传文件没有问题,但是在使用嵌套目录时,我在尝试创建文件夹时遇到了存储异常。这是一个代码示例。
CloudFileDirectory rootDirectory = FileShare.GetRootDirectoryReference();
if (rootDirectory.Exists())
{
cloudFileDirectory = rootDirectory.GetDirectoryReference("Folder/SubFolder");
cloudFileDirectory.CreateIfNotExists(); //Exception occur
var file = cloudFileDirectory.GetFileReference("File.txt");
}
我是否必须创建一个为目录创建目录的方法,或者是否有更简单的解决方案?
Do I have to create a method that create directory for directory or is
there a more simple solution?
是的,您需要这样做。您无法指定文件夹结构并让 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...");
}
}
我想在嵌套文件夹环境中上传文件。创建目录和上传文件没有问题,但是在使用嵌套目录时,我在尝试创建文件夹时遇到了存储异常。这是一个代码示例。
CloudFileDirectory rootDirectory = FileShare.GetRootDirectoryReference();
if (rootDirectory.Exists())
{
cloudFileDirectory = rootDirectory.GetDirectoryReference("Folder/SubFolder");
cloudFileDirectory.CreateIfNotExists(); //Exception occur
var file = cloudFileDirectory.GetFileReference("File.txt");
}
我是否必须创建一个为目录创建目录的方法,或者是否有更简单的解决方案?
Do I have to create a method that create directory for directory or is there a more simple solution?
是的,您需要这样做。您无法指定文件夹结构并让 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...");
}
}