2017-05-25 10 views
0

Googleスクリプトでは、フォルダオブジェクト(testFolder)とファイルオブジェクト(testFile)があります。私はこれらの2行のコードを持っています:ファイルをコピーできます、Googleスクリプトを追加できません

testFolder.addFile(testFile);

testFile.makeCopy( 'this is a copy'、testFolder);

2行目は、ファイルを正しくフォルダにコピーします。 最初の行は何もしていないようです。私はそれがファイルへの参照を追加し、フォルダに配置することを期待しています。

私は明らかに正しいオブジェクトを持っており、私はファイルとフォルダの所有者なので、他のアイデアはありますか?

ありがとうございました

答えて

0

Googleドライブに新しいファイルを作成することができます。しかし、単にファイルをフォルダに移動することはできません。目的のフォルダにコピーを作成し、古いファイルを削除する必要があります。または、目的のフォルダの場所に直接ファイルを作成する必要があります。

+0

を働いたスクリプトは、ちょうど明確にするために、ファイルがすでに存在している、私はリファレンスガイドによるとこれは、フォルダオブジェクトのADDFILE(子)メソッドを使用しています:「指定したファイルを追加します。現在のフォルダに移動します。この方法では、既存の親フォルダからファイルを移動することはありません。ファイルに複数の親を同時に設定することができます。 " – Mark

0

'testFile'と 'testFolder'オブジェクトを取得するためのコードは何ですか? IDまたは名前で参照していますか? Googleドライブに同じ名前のフォルダが複数ある場合は、問題の原因となっている可能性があります。ここだから、私のため

var file = DriveApp.getFileById('YOUR_FILE_ID'); 
    var folder1 = DriveApp.getFolderById("YOUR_FOLDER1_ID"); 
    var folder2 = DriveApp.getFolderById("YOUR_FOLDER2_ID"); 
    file.makeCopy('another copy', folder1); 
    folder1.addFile(file); 
+0

こんにちは感謝します。スクリプトはフォルダとサブフォルダを作成するため、一意になります。ファイルが正しいフォルダにコピーされているということは、正しいファイルとフォルダを選択していることを示しています。私はちょうど代わりにファイルを追加する(CRTL - Zのメニューのような 'UIのフォルダに追加')ように見えることができません。スクリプトは基本的に従業員フォルダを作成しており、会社ポリシー文書をそのフォルダに追加したいと考えています。しかし、私は1つのマスターコピーが必要なので、変更されていると、(実際には同じ文書を見ているので)従業員のフォルダで誰もがそれを見ることになります。これは理にかなっていますか? – Mark

+0

ファイルに複数の親フォルダを追加したいと思います。 folder.addFile()は私の魅力のように働いたので、問題はもっと深くなければなりません。これは自動的に変更されるため、共有権限と競合しません。 –

+0

はい、それは完全です。私が投稿した2行のコードは順次であるため、デバッガはファイルを(エラーメッセージなしに)追加し、次の行に正常にコピーするように見えます。 (私はちょうどその小切手としてコピーを入れる)。 – Mark

関連する問題