1

新しく作成した Google ドキュメント ファイルを Google ドライブ内のフォルダに移動しようとしています (Google Apps を使用)。

var newFile = DocumentApp.create('New File');
var newFileID = Docs.getFileById(newFile);
var newFileRelocated = newFileID.addToFolder(newFolder);

「cannot find method addToFolder(. (Line ...)」というメッセージが表示されます. 何が間違っているのでしょうか? それらのメソッドは、作成中にオプションとしてドロップダウンされますが、それでも見つかりません。

4

4 に答える 4

2

これの論理はあなたが試した通りではありません...

これが実際の例です:

function myFunction() {
var newFile = DocumentApp.create('New File');
var newFileID = newFile.getId()
var newFolder = DocsList.createFolder('test Folder')
DocsList.getFileById(newFileID).addToFolder(newFolder)
}
于 2012-10-23T11:17:39.553 に答える
2

あなたnewFolderが期待したものではない可能性があります。それはstringですか?どこで定義しましたか?

とにかく、 で期待されるパラメータは、 で他のメソッドを使用して取得しaddToFolderたオブジェクトでなければなりません。などなど。FolderDocsListDocsList.getFolder("/path/to/folder")DocsList.getFolderById("folder-id")

あなたのコードには他にも「矛盾」があるようです。あなたがやろうとしていることを貼り付けます:

var newDoc = DocumentApp.create('New Google Doc');
//a DocumentApp file and a DocsList file are not the same object, although they may point to the same Google Doc
var newFile = DocsList.getFileById(newDoc.getId());
var folder = DocsList.getFolder("/path/to/folder"); //I'm assuming the folder already exists
newFile.addToFolder(folder);
于 2012-10-23T11:02:09.543 に答える
1

これに加えて、私は最近この問題に対処しました。

デフォルトの場所は、DocsList.create()ファイルをルートフォルダー(別名マイドライブ)に保存することです。

大量のファイルを作成している場合、これは実際の頭痛の種につながる可能性があります。

これを.addToFolder()の後の行として追加しました

newFile.removeFromFolder(DocsList.getRootFolder());
于 2012-11-02T14:05:46.667 に答える
0

次の関数は、画像 URL を渡す単純な Google スクリプトです。

function fetchImageToDrive_(imageUrl)
 {
 //Fetch image blob
    var imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
 //Create image file in drive
    var folder = DocsList.getFolder('test Folder');
    folder.createFile(imageBlob);
 }
于 2013-09-12T02:51:06.767 に答える