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