0
我想檢查一個文件夾是否存在,只有當它不存在時創建一個新文件夾。但是,該文件夾可能是根或其他文件夾的子文件夾。那麼我怎麼能在Unix上做類似mkdirs的東西,在那裏給它一個路徑並且它會創建路徑中的所有目錄?Google Drive iOS SDK
順便說一句 - 該SDK有點令人沮喪,因爲它似乎沒有辦法使用文件系統路徑。相反,你必須進行大量的查詢和回調,這很雜亂。 w^
這是我用它來創建一個文件夾:
- (void)createFolder:(NSString *)folderName completion:(void (^)(GTLDriveFile * file, NSError *))handler {
NSLog(@"createFolder:%@ completion:", folderName);
GTLDriveFile *folder = [GTLDriveFile object];
folder.title = folderName;
folder.mimeType = @"application/vnd.google-apps.folder";
GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folder uploadParameters:nil];
[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLDriveFile *updatedFile, NSError *error) {
if (error == nil) {
NSLog(@"Created folder");
handler(updatedFile, nil);
} else {
NSLog(@"An error occurred: %@", error);
handler(updatedFile, error);
}
}];
}
好一個問題,我看到的是,存在檢查和創建調用不是原子的方法。一次調用createFolder是可能的:在另一次調用完成創建之前執行檢查。 – user3246173
這是正確的。營銷名稱「Drive」暗示的內容與硬盤驅動器類似,實際上是鬆散耦合服務器的農場,其中有大量異步更新正在進行。如果你的應用擁抱這個範例,那也不錯。任何試圖將雲端硬盤視爲雲端硬盤的應用都會遭到破壞。 – pinoyyid