次の方法を使用すると、サブフォルダーを取得できますが、このコードはルートからすべてのフォルダーを取得します。たとえば、ゴミ箱にフォルダがある場合、マイ ドライブ内のフォルダと一緒にそれを取得します。
私の要件は、フォルダーがマイドライブにない場合は、最初にフォルダーを作成してからファイルを挿入することです。私の問題は、フォルダー名を確認しているときに、フォルダーがゴミ箱に存在するがマイドライブには存在しないため、フォルダーが存在するという応答が得られることです。
フォルダーを取得する私の方法は次のとおりです。
誰かが何か考えを持っているなら、私に知らせてください。
-(void)getFileListFromSpecifiedParentFolder {
GTLQueryDrive *query2 = [GTLQueryDrive queryForFilesList];
// GTLQueryDrive *query2 = [GTLQueryDrive queryForChildrenListWithFolderId:@"My Drive"];
query2.q = @"";
//or i also use this code
query2.q = @"mimeType = 'application/vnd.google-apps.folder'";
// queryTicket can be used to track the status of the request.
[self.driveService executeQuery:query2
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveChildList *children, NSError *error) {
NSLog(@"\nGoogle Drive: file count in the folder: %d", children.items.count);
//incase there is no files under this folder then we can avoid the fetching process
if (!children.items.count) {
return ;
}
if (error == nil) {
for (GTLDriveChildReference *child in children) {
GTLQuery *query = [GTLQueryDrive queryForFilesGetWithFileId:child.identifier];
// queryTicket can be used to track the status of the request.
[self.driveService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveFile *file,
NSError *error) {
NSLog(@"\nfile name = %@ \n file kind %@ \n file identifier %@", file.title,file.kind,file.identifier);
}];
}
}
else
[self createFolderForGoogleDriveWithName:@"Music"];
}];
}