簡體   English   中英

在Google雲端硬盤的Google App腳本中,如果某些文件的標題包含特定的單詞,如何將它們從根目錄移至特定的文件夾?

[英]In Google-App-Script for Google Drive how do I move certain files from root to a certain folder if their title includes a certain word?

我想使用Google-App-Script將某些文件移動到特定文件夾(如果它們的標題包含特定單詞)

我已經嘗試過類似的操作,但是錯誤消息指出該方法未定義。 有任何指示/建議嗎?

這是我的代碼:

function myFunction() {
    var searchFor ='title contains "Copyright"';
    var names =[];
    var files = DriveApp.searchFiles(searchFor);
    var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
    while (files.hasNext()) {
        files.next().destination.addFile(file);
}

}

看來您沒有在代碼中的任何地方定義“文件”變量。

您可以在while循環中定義它,也可以將files.next()作為addFile()的參數傳遞。

最后,您應該從第7行的開頭刪除files.next(),因為此鏈接不正確,可能會導致您的錯誤!

另外,請注意,該文件不會從其原始文件夾中刪除,但可以從兩個位置訪問。 如果您想從原始位置刪除文件,請告訴我,我將編輯代碼以添加此文件。

嘗試這個:

function myFunction() {
  var searchFor ='title contains "Copyright"';
  var names =[];
  var files = DriveApp.searchFiles(searchFor);
  var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
  while (files.hasNext()) {
    var file = files.next();
    destination.addFile(file);
  }
}

或這個:

function myFunction() {
  var searchFor ='title contains "Copyright"';
  var names =[];
  var files = DriveApp.searchFiles(searchFor);
  var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
  while (files.hasNext()) {
    destination.addFile(files.next());
  }
}

請注意,您的代碼並沒有像您所說的那樣執行。 也就是說,它實際上並沒有將文件從根文件夾“移動”到指定的文件夾(如果要完成此操作)。

在Google雲端硬盤中,文件夾和文件可以有多個父對象。 將文件夾視為應用於文件和其他文件夾的“標簽”。 調用Folder類的addFile(file)方法會將文件添加到新文件夾,但是相同的文件也將保留在其原始父文件夾中。

這可能會導致問題,因為您可能會意外地從一個文件夾中刪除該文件,並認為它實際上是一個副本,而實際上它是存儲在多個文件夾中的同一文件。

由於無法直接將文件“移動”到Google雲端硬盤中的另一個文件夾,因此實際過程包括2個步驟。

獲取文件的父文件夾列表:

var folderIterator = file.getParents();   

將文件添加到目標文件夾並將其從以前保存的父文件夾中刪除

targetFolder.addFile(file);

//Remove from parents
while (folderIterator.hasNext()) {    
 folderIterator.next().removeFile(file);  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM