私のスクリプトでは、メインドライブにテンプレートドキュメントがありますが、コピーが作成されてExcelデータが入力されたら、ドライブ内のフォルダーに保存する必要があります。スクリプトにそれを実行させますが、ファイルの1つのコピーがメインのGoogleドライブにあり、もう1つのコピーが必要なフォルダーにあります。コピーの1つを削除すると、両方が削除されます。
メインドライブフォルダにいなくても、指定したフォルダに自動的に保存する方法はありますか?
私のスクリプトでは、メインドライブにテンプレートドキュメントがありますが、コピーが作成されてExcelデータが入力されたら、ドライブ内のフォルダーに保存する必要があります。スクリプトにそれを実行させますが、ファイルの1つのコピーがメインのGoogleドライブにあり、もう1つのコピーが必要なフォルダーにあります。コピーの1つを削除すると、両方が削除されます。
メインドライブフォルダにいなくても、指定したフォルダに自動的に保存する方法はありますか?
Googleドライブのフォルダは、コンピュータのフォルダとまったく同じではありません。ファイルが「ルート」フォルダにあり、別のフォルダにあるということは、ファイルが2つあるという意味ではなく、ラベルが2つしかないファイルが1つしかないということです。もう一方を削除せずに一方を削除することはできません!
解決策は、スクリプトでこれらのラベルを操作することです。これがどのように機能するかを示します:(明確にするために各ステップにコメントしました。)
function othertest(){
folder=DocsList.createFolder("MyFolder"); // or getFolderById or whatever other way to get your target folder
var file=DocsList.createFile('File2', 'Empty');// just an empty file for test but this would be your file copy that you want to "move"
file.addToFolder(folder);// put it in the folder
file.removeFromFolder(DocsList.getRootFolder());// and remove from the root
}
createFile
他の可能な解決策は、フォルダーオブジェクトがメソッドをサポートしているため、ターゲットフォルダーに直接ファイルを作成することです。(特定のユースケースでそれを実行できるかどうかはわかりませんが)
これが例です。ファイルがルートフォルダにないことがわかります。
function createFileinFoldertest() {
var folder = DocsList.getFolder('test')
folder.createFile('Empty test fileName','nothing in there')
}