ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】既存のPDFを現在のシートの内容で更新する方法
ファイル一覧の取得
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- ファイルの一覧をスプレッドシートに出力できます。
- Google ドライブでファイル一覧の取得方法がわかります。
- ファイルのコピー方法がわかります。
なのでサクッとマスターして
と答えてあげてください。
動画はこちら
スクリプト
function getTheFiles(){
var dApp = DriveApp;
var folderIter = dApp.getFoldersByName("Download Pictures");
var folder = folderIter.next();
var largeFolder = folder.getFoldersByName("large").next();
var smallFolder = folder.getFoldersByName("small").next();
var filesIter = folder.getFiles();
while( filesIter.hasNext() ){
var file = filesIter.next();
var filename = file.getName();
var filesize = file.getSize()/1024;
if( filesize > 100 ){
file.makeCopy(largeFolder);
}else{
file.makeCopy(smallFolder);
}
}
}
function mytest(){
var x = 20;
while(x){
Logger.log(x);
x = x-5;
}
}
スプレッドシートに出力
取得した一覧を
- Google Driveのファイル一覧をスプレッドシートに出力できます。
こんな感じで
答えてあげてください
動画はこちら
スクリプト
function getTheFiles(){
var dApp = DriveApp;
var folderIter = dApp.getFoldersByName("Download Pictures");
var folder = folderIter.next();
var largeFolder = folder.getFoldersByName("large").next();
var smallFolder = folder.getFoldersByName("small").next();
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var i = 1;
var filesIter = folder.getFiles();
while( filesIter.hasNext() ){
var file = filesIter.next();
var filename = file.getName();
var filesize = file.getSize()/1024;
ss.getRange(i, 1).setValue(filename);
ss.getRange(i, 2).setValue(filesize);
if( filesize > 100 ){
file.makeCopy(largeFolder);
}else{
file.makeCopy(smallFolder);
}
i++//i=i+1;
}
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】指定したGoogleカレンダーの予定をLINEに送信する方法
指定したカレンダーの予定のみLINEに通知されるようになります。
以前作成したスクリプトの変更方法がわかります。
コメント
質問をさせて下さい。
最初のwhile分の説明のところです。
function mytest() {
let x = 20;
while (x) {
x = x – 1;//①
console.log(x);
x = x – 1;//②
}
}
①の状態でconsole.logをすると0から19と出力されます。
②の状態でconsole.logをすると1から20と出力されます。
これは、どうしてこうなるのですか。
不思議に思いましたので質問をさせてもらいました。
宜しくお願い致します。
堺さん、コメントありがとうございます。
x の初期値を 1にすればわかりやすいと思います。
let x= 1;
while(x)は、xが0になるとループを抜けます。
①→ 0になるので、ログは0 で ループを抜ける
②→ ログは 1 で ②で0となりループを抜ける
実際に、1ステップづつ追っかけるとわかると思います。
返事ありがとうございます。
これはconsole.logの前にx = x – 1;を書きますと1を引いてから1回目のループが始まる。
console.logの後にx = x – 1;を書きますと1を引く前に1回目が始まる。
この違いですね。
ありがとうございました。
何度も質問をしてすいません。
function getTheFiles() {
let dApp = DriveApp;
let folderIter = dApp.getFoldersByName(‘Download Pictures’);
let folder = folderIter.next();
console.log(folder);
これで出力しますと
{ toString: [Function],
getOwner: [Function],
getEditors: [Function],
こういう文字列がいっぱい出力されます。
次に.getName()を追加しますとフォルダー名が表示されますが次の出力で何度もやり直してもエラーしか出ません。
function getTheFiles() {
let dApp = DriveApp;
let folderIter = dApp.getFoldersByName(‘Download Pictures’);
let folder = folderIter.next().getName();
console.log(folder);
let filesIter = folder.getFiles();
while (filesIter.hasNext()) {
let file = filesIter.next();
console.log(file);
サンプルをコピーしても同じような結果になります。
どうしたらよいですか。
教えて下さい。
お願します。
動画の通りやってみて、うまくいかない箇所の
タイムスタンプ(秒)を教えてください。