在文件夹中创建子文件夹

时间:2016-10-18 14:38:31

标签: javascript jquery google-drive-api

使用此代码,我可以创建文件夹。

         function createNewFolder() {
            var name =   "newfolder"

            gapi.client.load('drive', 'v2', function() {

            var request = gapi.client.request({
               'path': '/drive/v2/files/',
               'method': 'POST',
               'headers': {
                   'Content-Type': 'application/json',

               },
               'body':{
                   "title" : name,
                   "mimeType" : "application/vnd.google-apps.folder",
                   "parents": [{
                        "kind": "drive#file",
                        "id": FOLDER_ID
                    }]
               }
            });

            request.execute(function(resp) { console.log(resp); });
           });
        }

    }
 }

但是当创建它时,我想在其中创建5个具有不同名称(苹果,梨,香蕉,猕猴桃和橙色)的子文件夹。

2 个答案:

答案 0 :(得分:0)

将代码的开头更改为:

function createNewFolder(folderName) {
    var name = folderName

通过为函数提供一个参数,您可以使用不同的名称多次执行它,这样您就可以遍历一个数组(例如)并创建它们:

var names = ['apple', 'pear', 'something']

for (var i = 0; i < names.length; i++) {
    createNewFolder(names[i]);
}

答案 1 :(得分:0)

使用parents[]属性获取FOLDER_ID时,您的代码是正确的。然后,您可以使用FOLDER_ID在父文件夹中创建子文件夹。在documentation中说明了这一点。

  

创建文件夹时也可以使用parents属性来创建子文件夹。

Sample code

function createSubFolder() {
var body = new Object();
body.title = 'SubFolder';
body.parents = [{'id':'0B5xvxYkWPFpCUjJtZVZiMWNBQlE'}];
body.mimeType = "application/vnd.google-apps.folder";

console.log(body)
var request = gapi.client.request({
'path': '/drive/v2/files',
'method': 'POST',
'body': JSON.stringify(body)
});

request.execute(function(resp) { console.log(resp); });
}

另外根据此SO thread,在Google云端硬盘中创建子文件夹时,它必须有父级。因此,在执行字符串q之前,您需要搜索父根ID。

string findRootId = "mimeType = 'application/vnd.google-apps.folder' and title ='" + RootFolder + "' and trashed = false";
IList<File> _RootId = GoogleDriveHelper.GetFiles(service, findRootId);
         if (_RootId.Count == 0)    
         {      
            _RootId.Add(GoogleDriveHelper.createDirectory(service, RootFolder, "", "root"));
                       Console.WriteLine("Root folder {0} was created.", RootFolder);   
         }      
var id = _RootId[0].Id;
string Q = "mimeType = 'application/vnd.google-apps.folder' and '" + id + "' in parents and title ='" + GoogleDriveFolderName + "' and trashed = false";

希望这有帮助!