我遇到了UWP應用程序中couroutine的一個簡單示例,但無法找到如何實現它。C++/cx協程:基本循環示例
這是我的目的:給定一個磁盤和一個基礎文件夾的路徑,我想創建相關的文件夾層次結構。 例如: 基本文件夾: 「C:\測試\」 路徑: 「測試1 \ TEST2 \ TEST3」
我的目的是創建的文件夾爲test1,test2的和TEST3所以,我們有以下文件夾結構: Ç :\ test \ test1 \ test2 \ test3 \
這是我到目前爲止所做的: 我解析路徑,以便在數組中有不同的組件(test1,test2和test3)(以下示例中的子文件夾)
Windows::Storage::StorageFolder^ current_storage_folder = base_folder;
for (auto& subfolder : subfolders)
{
if (!subfolder.empty())
{
Windows::Storage::StorageFolder^ next_storage_folder = (Windows::Storage::StorageFolder^)co_await current_storage_folder->TryGetItemAsync(subfolder);
if (next_storage_folder == nullptr)
{
next_storage_folder = co_await current_storage_folder->CreateFolderAsync(subfolder);
}
current_storage_folder = next_storage_folder;
}
}
我得到的輸出是錯誤的,因爲我有測試1是創建的,有時候是test2。但是,結果不能被預測。
我認爲我對co_await的理解是錯誤的,因爲我期待每個co_await調用在完成下一個調用之前完成,但似乎並非如此。
你是不是指'CreateFolderAsync(subfolder);'而不是'subfolder_mng'? –
是的,你是對的,我編輯了這個問題。 –
另外,您應該在創建新內容之前檢查返回的項目(目錄,文件,..)的類型。可能有人有文件c:\ test \ test1 \ test2「不是文件夾 –