【GAS】GoogleAppsScriptを用いてDrive上のファイルのIDを取得する方法
こんにちは!GoogleAppsScriptを使った業務効率化に夢中の初心者プログラマー、太郎です。
今日はGoogleAppsScript(GAS)を用いてDrive上のファイルのIDを取得する方法について書いていきたいと思います。
初心者向けですが、javascriptの基本的なルールは押さえておいた方が理解はしやすいと思いますので、まだの方はProgateでサクッとjavascriptの文法を学習してみてください。
ファイルの名前から取得する方法
GoogleDriveで使用するDriveAppクラスにはgetFilesByName
というメソッドがあります。このメソッドを使って、マイドライブの中にある「IDを取得したいドキュメント」というGoogleドキュメントファイルのIDを取得したいと思います。
コードはこんな感じ
function getFileId() {
var targetFiles = DriveApp.getFilesByName('IDを取得したいドキュメント');
var fileId = targetFiles.next().getId();
}
これで目当てのファイルIDが取得できます。
DriveApp.getFilesByName
で得られる値は、FileIterator
というデータ型で、取り出すときにはnext()
を使う必要があるみたいです。
今回取得したのは一つのファイルですが、getFile「s」ByNameとなっていることからも、複数のデータ情報が入っているのが常らしく、next()
でそのファイル一つ一つを取り出していくようです。
その場合、最後のファイルかどうかを判別するhasNext()
といっしょに用いられ、
while (files.hasNext()) {
var file = files.next();
// do something
こんな風に記述されます。hasNext()
は次のファイルがないときにFalse
を返します。While文はFalse
を返されると処理が止まるので、
次のファイルがないファイルまでたどり着いたら処理を止める
=最後のファイルにたどり着いたら処理を止める
=最初から最後までのファイルを取得する
こういうことです。うん???逆に分かりづらいかな。。。
要するに、hasNextとnextを使うと、取得したFiles(Foldsでもよし)のデータを全部取り出せるって言うことですね。
今回だとこう書けます
function getFileIdFromName() {
var targetFiles = DriveApp.getFilesByName('IDを取得したいドキュメント');
while (targetFiles.hasNext()) {
var fileId = targetFiles.next().getId();
}
}
以上がファイルの名前からIDを取得する方法になります。
URLからIDを取得する方法
ドライブ上に保存されているデータには、必ずIDがあり、URLがあります。そのURLからもIDを取得することができます。
ドライブのURLには共通の形があります。
https://drive.google.com/ファイル形式/よく分からない文字列/ID/閲覧情報
なので、「/(スラッシュ)」を区切りとして、文字情報を配列として取得して、ID部分だけを取り出すことができます。使うメソッドはsplitですね。
function getFileIdFromUrl() {
var targetFileUrl = 'https://drive.google.com/ファイル形式/よく分からない文字列/ID/閲覧情報';//取得したいドライブ上のファイルのURLを入力
var urlArray = targetFileUrl.split('/');
var fileId = urlArray[5];
}
urlArrayを出力すると
[https:, , drive.google.com, ファイル形式, よく分からない文字列, ID, 閲覧情報]
こんな配列になっていることが分かります。取得したいIDはこの配列の6番目なので、urlArray[5]で取り出せる、というわけですね!
以上、GoogleAppsScriptを用いてDrive上のファイルのIDを取得する方法でした。
参考になれば嬉しいです!今後も様々トライしてみた結果を記事に書いていきたいと思います!
Author And Source
この問題について(【GAS】GoogleAppsScriptを用いてDrive上のファイルのIDを取得する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/coticoticotty/items/fbdf64e4b66bb7e42641著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .