此刻我有許多容器。 Foreach容器我想從包含文件夾名稱的其他存儲帳戶添加一個空文件夾。然後我想用它填充必要的數據。通過編程在容器中創建一個子文件夾Azure C
我不確定是否有可以在容器中創建文件夾的屬性。
這裏我有兩個容器,一個來自我的sourceAccount
,另一個來自我的targetAccount
。我正在將數據從我的sourceAccout
發送到我的tagetAccount
。在我的容器中的目標帳戶dayBlob
我想要創建子文件夾。
在這段代碼中,我得到了所有容器。當我得到這些容器時,我得到它們中的每一個的名稱。我想在我的目標容器中添加子文件夾,與我在foreach
foreach (var items in containers)
{
var containerName = items.Name;
}
我的代碼得到名稱如下
static CloudStorageAccount sourceAccount = new CloudStorageAccount(new StorageCredentials("name", "key"), true);
static CloudStorageAccount targertAccount = new CloudStorageAccount(new StorageCredentials("name", "key"), true);
static void Main(string[] args)
{
DateTime dateToday = DateTime.Today;
DateTime date = new DateTime();
DateTime dateutc = TimeZoneInfo.ConvertTimeToUtc(date);
TimeSpan startDay = new TimeSpan(00, 00, 00);
TimeSpan endDay = new TimeSpan(23, 59, 59);
var sourceClient = sourceAccount.CreateCloudBlobClient();
var targetClient = targetAccount.CreateCloudBlobClient();
var testContainer = sourceClient.GetContainerReference("test");
var sourceContainer = sourceClient.GetContainerReference("downloads");
var itDropBoxContainer = sourceClient.GetContainerReference("it-dropbox");
var dayBlob = targetClient.GetContainerReference($"day{dateToday.Day}");
date = DateTime.Parse($"{dateToday.Day}/{dateToday.Month}/{dateToday.Year}");
var start = date + startDay;
var end = date + endDay;
IEnumerable<CloudBlobContainer> containers = sourceClient.ListContainers();
foreach (var items in containers)
{
var containerName = items.Name;
}
foreach (IListBlobItem item in testContainer.ListBlobs(useFlatBlobListing: true))
{
var blob = item as CloudBlockBlob;
var modificationDate = blob.Properties.LastModified;
// to set the modfication date as local time
var britishZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
var lastModified = TimeZoneInfo.ConvertTime((DateTimeOffset)modificationDate, britishZone);
if (lastModified > start && lastModified < end)
{
try
{
if (blob != null)
{
CloudBlockBlob sourceBlob = testContainer.GetBlockBlobReference(blob.Name);
CloudBlockBlob targetBlob = dayBlob.GetBlockBlobReference(blob.Name);
Console.WriteLine($"Successfully created a snapshot of blob {blob.Name}");
}
}
catch (Exception ex)
{
ExceptionHandler.LogError(ex, "Failed to copy to the target folder");
}
}
else
{
Console.WriteLine($"Failed to create a snapshot of blob {blob.Name}");
}
}
}
您能否更新您的問題並告訴我們您正在嘗試解決的問題?您似乎想要將來自源帳戶的斑點複製到容器名稱中的目標帳戶,該容器名稱中包含當月的某天,即您的目標帳戶中將有31個斑點容器。空文件夾在這裏發揮作用? –
@GauravMantri我已更新我的問題。我想爲每個目標容器添加3個文件夾。我想從源容器中的容器中獲取這些文件夾的名稱 –
謝謝!但我不確定我瞭解你的代碼。當您退出forEach循環時,'containerName'變量的值將始終是存儲帳戶中最後一個容器的名稱。或者你只想在這個循環中創建一個子文件夾? –