2017-08-29 25 views
2

私の英語はざらめきで、私のプログラミングスキルはJavascriptと同じです。 Googleドライブの特定のフォルダに複数のPDFファイルがあります(約10件)。 1日に1度、深夜までに、これらのファイルを特定のGoogleドライブのフォルダに1つずつ移動する必要があります。 実際に私はこの活動を手作業で行っています。そのため、簡単なスクリプトで自動化しようとしました。Googleドライブ - 特定のファイル(.pdf)を特定のフォルダから別のフォルダに移動する方法

特定のフォルダを指すことはできますが、特定のファイルを指すことはできません。 インターネットで見つかったサンプルでは、​​フォルダに含まれるすべてのファイルが別のフォルダに移動さ​​れるため、filesIterator技術が使用されます。 しかし、私は反復する必要はありません、私は特定のファイルを指し、別のフォルダに移動する必要があります。

ここに私の5(混乱し)プログラム行:

function moveFiles(source_folder, dest_folder) { 

var source_folder = DriveApp.getFolderById('0B42Jhhzp_5X7QUlMdE9SZS0wMms'); 
var dest_folder = DriveApp.getFolderById('0B42Jhhzp_5X7TFZBMXpfeWpZNFk'); 

var file = getFilesByName('caa20170829.pdf'); 

// var files = source_folder.getFiles(); 
// Logger.log(file.getAs(MimeType.HTML).getDataAsString()); 

dest_folder.addFile(file); 
source_folder.removeFile(file); 
} 

私は取得していますエラーメッセージ:

ReferenceError: "getFilesByName" not defined. (line 6, file "move")

任意の助けをいただければ幸いです!


最大Deepfield(おかげで、最大)から示唆されるように、

var file = DriveApp.getFilesByName('caa20170829.pdf'); 

を次のようにIは、ライン6を編集し

Impossible to find the method addFile(FileIterator). (line 11, file "move")

に変更エラーメッセージが今は11を編集。以下のようになります。

DriveApp.dest_folder.addFile(file); 

とエラーメッセージが別の時間を変更...ハッサンへ

TypeError: Impossible to call the method "addFile" of undefined. (line 11, file "move")

おかげで、あまりにも、私は彼が提案例を勉強しています。 しかし、誰かがさらに助けてくれたら...私は前もって感謝します。

+2


source_folder= DriveApp.getFolderById('YourFolderID1') dest_folder=DriveApp.getFolderById('YourFolderID2') var files = source_folder.getFilesByName("YourFileName").next(); dest_folder.addFile(files); source_folder.removeFile(files); 

はそれが 'DriveApp.getFilesByName'ではありませんあなたは確かにありますか? –

+0

このhttps://developers.google.com/drive/v3/web/folder –

+0

ハッサンをご覧ください。多くのご協力ありがとうございます。 あなたからお勧めの通りに編集しました。実際、次のようにエラーメッセージが表示されます。メソッドaddFile(FileIterator)を見つけることができません。 (行11、ファイル "move") – aldobz

答えて

0

問題は、DriveApp APIには単一のFileを返すメソッドがないことです。だから、FileIteratorを渡さなければなりません。

最初に、function moveFiles(source_folder, dest_folder)にパラメータを設定する必要はありません。source_folderdest_folderが関数内で定義されています。しかし、私はあなたがインターネットで見つけたコードに間違いを犯したと思います。

また、ここに間違ったアドバイスがあります:DriveApp.getFolderById()に電話すると、APIはFolderを返します。だから、たとえばDriveApp.dest_folder.addFile(file);のために(もうこのVARにDriveAppを呼び出す必要はありません方法addFile()Folderタイプのためであり、dest_folderはすでにFolderあるので、悪いコールである。

だから、あなたはこれを試みることができる、それが私の作品:私はそれはあなたを助け願っています:)

+0

こんにちはバプティスト、私はあなたの助けを大いにありがとう、ありがとう。 簡単にギャラクティック! 初回にはとてもうまく機能しました! 多くのおかげですが、イタリアから最も敬意を表します。 アルド – aldobz

関連する問題