パソコン・インターネット

2020年4月20日 (月)

google script 入門 (google drive内のファイル&フォルダ一覧)

今日は、google drive内の「ファイルとフォルダの一覧表」を作成するスクリプトについて書きます。
記載したスクリプトは2つです。
1つ目は、指定したフォルダより「下層に存在するファイルとフォルダ」をリストアップするものです。
2つ目は、「自分のgoogle ドライブ内の全てのファイルとフォルダ」  をリストアップするものです。

 

google スクリプトを初めて動かす方は初めに以下も読んでみて下さい。
 ・google script 入門 (スプレットシートに "Hello World" を表示するまで)

 

■結果
 ここに記載したスクリプトで得られる一覧表の例を下図に示します。20200420b

 

■スクリプト1
 「指定したフォルダ」より「下層に存在するファイルとフォルダ」をリストアップするスクリプトを示します。

 「google drive のフォルダ」を示すURL(下図の"???????????"の部分) は、自分のものに変更してください。

 

function myFunction() {  
// googleドライブのフォルダを示す URL。ブラウザのURLのコピペ
const url = 'https://drive.google.com/drive/u/0/folders/1???????????'
let paths = url.split('/')
let folderId = paths[paths.length - 1]
let folder = DriveApp.getFolderById(folderId)
let aFolder = []
let aFile = []
scan(folder, aFolder,aFile)
printSheet(aFolder, 1)
printSheet(aFile, 5)
}
function scan(folder,aFolder,aFile){
aFolder.push(folder)
let p = folder.getFiles()
while(p.hasNext()) {
aFile.push(p.next());
}
p = folder.getFolders()
while(p.hasNext()) {
scan(p.next(), aFolder, aFile)
}
}
/*
* google スプレッドシートにファイル一覧を表示
*/
function printSheet(files, column){
const sheet = SpreadsheetApp.getActiveSheet()
let print = (p, row, column) => {
let x1 = p.getSharingAccess() // getSharingPermission(),getAccess(email)
let x2 = p.getUrl()
let buff = [[x1, x2, p]]
sheet.getRange(row, column, 1 , 3 ).setValues(buff)
// sheet.getRange(row, column, buff.length, buff[0].length).setValues(buff)
}
let i=1
files.forEach((e) => print(e, i++, column))
}

■スクリプト2
 次に自分のgoogle drive 内の「全ファイルとフォルダの一覧」を作成するスクリプトを記載します。

 ドライブ内のファイル数にもよりますが、実行には結構長い時間がかかります

 

function myFunction() {  
const sheet = SpreadsheetApp.getActiveSheet()

const printSheet = (v, row, column) => {
let x1 = v.getSharingAccess() // getSharingPermission(),getAccess(email)
let x2 = v.getUrl()
let buff = [[x1, x2, v]]
sheet.getRange(row, column, 1 , 3 ).setValues(buff)
// sheet.getRange(row, column, buff.length, buff[0].length).setValues(buff)
}

let p = DriveApp.getFolders()
var i = 1;
while (p.hasNext()) {
printSheet(p.next(), i++, 1)
}

p = DriveApp.getFiles()
i = 1;
while (p.hasNext()) {
printSheet(p.next(), i++, 5)
}
}

 

google script 入門 (google drive内ファイルのアクセス権調査)

google ドライブ内指定フォルダの「ファイル一覧を取得する」と共に
各ファイルの「アクセス可否」を調査するスクリプトを作りました。

単機能でシンプルなスクリプトです。

google スクリプトを初めて動かす方は初めに以下も読んでみて下さい。
 ・google script 入門 (スプレットシートに "Hello World" を表示するまで)

 


■実行結果
 実行結果は下図のようになります。
 一部加工してあります。(背景色付加及び文字を隠しています)

20200419h

 

 

■スクリプト
   スクリプトコードは下図の通りです。
 「?????????」と書かれている2か所は自分の環境に合わせて変更してください


  20200419j

 

function myFunction() {
// アクセスできるか確かめる gmailアドレス
const email= "??????????????????@gmail.com"
// googleドライブ内の調査対象フォルダのURL
const url = 'https://drive.google.com/drive/u/0/folders/1??????????????????'
let paths = url.split('/')
let folderId = paths[paths.length - 1]
let folder = DriveApp.getFolderById(folderId)
let files = folder.getFiles()
let list = []
while(files.hasNext()) {
var buff = files.next()
list.push([buff.getAccess(email), buff.getName(), buff.getUrl()])
// list.push([buff.getSharingAccess(), buff.getName(), buff.getUrl()])
// list.push([buff.getSharingPermission(), buff.getName(), buff.getUrl()])
};
//list = list.reverse() // 必要に応じて、逆順に変換
let sheetName = 'シート1'
let rowIndex = 1
let colIndex = 1
let ss = SpreadsheetApp.getActive()
let sheet = ss.getSheetByName(sheetName)
let range = sheet.getRange(rowIndex, colIndex, list.length, list[0].length)
range.setValues(list)
}

 

 

google script 入門 (スプレットシートに "Hello World" を表示するまで)

 

google スクリプトを初めて書いてみました。

"Hello"を表示させるまで、いくつものエラーや警告が出たので、
解決策をメモしておきます。

 

■スプレットシート作成
 Chromeブラウザで google drive を開き、googleスプレットシートを作成。
 20200419e

■エラー「現在、ファイルを開くことが出来ません
 スクリプトエディタを起動しようとしたとたんにエラーが発生。
 原因は、Chromeブラウザのデフォルトでないgmailでログインしたgoogle driveで
 google スプレットシートを作った為でした。
 デフォルトのgmailアドレスでgoogle driveにログインしたら解決しました。


 20200419c



■スクリプト入力
 スクリプトエディタを開き、以下のスクリプトを2行記入。

 

function myFunction() {
  Browser.msgBox("Hello")
SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue("Hello")
// Logger.log("Hello")
}

 

 そして、スクリプトを保存。

20200419f


■スクリプト実行
 実行ボタン(スクリプトを入力したプロジェクトの三角形のボタン)を押すと、以下の警告文が表示される。
  ・Authorization required
  ・アカウントの選択
  ・このアプリは確認されていません
  ・**がGoogleアカウントへのアクセスをリクエストしています

 下図のようにすれば、最終的に スプレットシートに "hello" ダイアログが表示されました。

20200419g_20200420184001

 

20200419d

 

■以下のスクリプトも見てみて下さい
 ・google script 入門 (google drive内フォルダのファイル一覧及びアクセス可否調査)

2020年4月19日 (日)

Google ドライブ の ファイルURL と 共有(公開)について

新型コロナで "stay home" 状態なので、久しぶりに記事を書きます。

 

google ドライブ内のファイル共有(ファイル公開)に関する記事です。

 

■結論 (私が今回知ったこと)


 ・google ドライブ内のファイル(フォルダ)には 「ID」 というものが付いている。

 ・「ID」 はファイルを開いた時に、ブラウザのURLを見れば分かる。(下記赤色部分)
   例:https://docs.google.com/spreadsheets/d/1?????????????????????/edit?usp=sharing

 ・googleドライブ内でファイルを「移動」しても「ファイル名を変えて」も、「ID」は変わらない。

 ・ファイルを共有する前と後で、「ID」は変わらない

 ・ラインなどでファイル共有URLを送りたい場合は、単にブラウザでファイルを開いた時に表示されるURLを送れば良い。
   例:https://docs.google.com/spreadsheets/d/1?????????????????????/

 ・公開されていないことを確認するには、ブラウザをシークレットモード(プライベートモード)で開き、
  ファイルのURLを入力しアクセス出来ないことを確認すれば良い。

 

20200420a

■ファイル共有方法

googleドライブ内のファイルを他人と共有する場合、以下の2パタンがあります。

 A. 特定の人のみアクセス可能

 B. 世界中の人に公開

 

20200419a

 

■ファイルが共有されていない事の確認方法
 ブラウザをシークレットモード(プライベートモード)で開き、ファイルのURLを入力すれば、アクセス有無を確認出来ます。

20200419b

keyword:google drive

2013年2月 2日 (土)

Apple TV を購入(2012/3/16発売モデルMD199J/A)

Apple TV を購入しました。
思っていた以上に小さいです。
赤外線リモコンで操作するので赤外線が届く場所に設置する必要がありますが、小さな隙間でも置くことが出来ます。
なかなか良いです。
もう直ぐテレビと関係する何か新しい製品がアップルから発売されるようですが、値段が安い事もあり私としては買って正解でした。

Appletv
■購入理由
 ・「PCやiPad」がテレビと無線で繋がる。その体験が楽しい
 ・安い(8400円)
 ・画質がHD(1080p)。1080pなので新しい製品が出た後直ぐ押入れ行きになるようなことはないと思います。

■良い点
 出来ることの詳細は
Apple TV サイトに書いてある通りですが、
   ・iPad の画面やWindows内の写真をTV画面に映すことができます
   ・MacやiPadではなくWindows 上の iTunes からでも、テレビのスピーカーを使って音楽を出せます
     (ただし多分WindowsPCにWi-Fiが搭載されている必要はあります)
   ・AppleTVの電源がOFFでも、PCのAirPlayボタンをクリックすればONになります
   ・ストリーミングで映画を鑑賞ができます(最新の洋画1本500円程度です。私の自宅はフレッツ光回線です)

■欠点
 ・見た目が良いリモコンだが、使い勝手としては凹凸がなくボタンを押し間違える。(慣れればOK?)
 ・リモコンで音量調節できない (これは仕方ない?TVの音量はTVのリモコンで操作してと言うことです)
 ・iPad画面をTVに映しているときに、マウスポインターのように指の位置を表示して欲しいがそれはできない。(これも仕方ないですね。ポインターが表示されたらきっとうっとおしいですね)

■注意
 HDMIケーブルは付属していません。自宅に在庫がない場合は別途購入する必要があります。

■内部構造
 AppleTV(MD199J/A)に音楽/写真/動画の記憶機能はないですが、装置内部のワーキング記憶装置はHDDではなくSSDのようです。なので反応が早く無音です。
  ・
iFixitが新Apple TVを分解、8GB NAND FlashチップとA4プロセッサ

■Ref.
 ・
Mac mini 目次

 

2013年2月 1日 (金)

Windows8 にしたら 古い画像ソフトでjpeg保存出来なくなった

■トラブル内容
 Winddows8にしたら、今まで良く使っていた古い画像ソフト(PhotoED、フォトエディット)で画像が保存できなくなりました。

■対策
 下図に示すようにプロパティで互換モード設定することにより、画像保存出来るようになりました。

Photoed
■Ref.
 ・
Mac mini 記事

Windows8 でChrome が遅くなった時の対処

Windows8 にしたら Chrome が遅くなってしまいましたが、
以下の方法で早くなりました。

症状:リンクをクリックしたとき、そのページに移動するまでが長い。
    繋がった後はいつも通り高速に表示される。

Chrome

■Ref.
  ・プロキシを解決しています

 ・Mac mini 記事の目次

2013年1月29日 (火)

Mac mini に HDMI 端子経由でTV接続

Mac mini に BootCamp を使って Windows8 (64bit) をインストール。
問題なく使えていたが、HDMI端子経由でTVに接続したところ、画像は映るが音がテレビから出ないというトラブルが発生。(Mac mini本体のスピーカーから音が出る)

対策方法がわかったので、他の方のためにメモしておきます。

■不具合内容
 「Mac mini (OS: Windows8 )のHDMI端子」と「TVのHDMI端子」をHDMIケーブルで接続したとき、
 映像は映るが、テレビのスピーカーから音が出ない。

■私の環境
 Mac mini    : 2012年版 (詳細はここ
 OS       : Windows 8 Pro (64ビット) BootCampを使ってインストール
 Boot Camp  : Ver. 4.1
 CPU      : i5-3210M @ 2.5GHz
 グラフィックス : Intel HD Graphics 4000 (HDMI端子への音声信号出力はこのチップ経由?)
 
 
 HDMI端子   : マルチチャネルオーディオ出力に対応するHDMIポートが1個あり

 TV       :東芝 REGZA 42Z8000 (HDMI端子が3個ある。1番に接続)
           注意:機種によっては設定でHDMIからの音声信号は受け付けない可能性あり

 HDMIケーブル:プラネックス製PL-HDMI03-EZ。単に安かったため購入。
           注意:音声を伝達しないHDMIケーブルもあるようです

■調査方法
 音が出ない原因が私と異なる場合もあるので、原因調査方法を書きます。
  1. HDDレコーダーやPS3など,現状HDMI接続している機器の音は出る?
    音が出るなら2番に進む。
  2.現状機器に接続していたケーブル引き抜きMac mini のHDMI端子に接続。
    Mac mini を
mac OS で立上げ。TVから音が出るか? 出るなら3番に進む。
  3. Mac miniを
Windowsで立上げ。画面右下スピーカーアイコンをクリック。表示された「音声ミキサー」のデバイスにTV(テレビ)はあるか?。
    ないなら私と同じ症状なので以下を実施。

■対策
 インテルからHDグラフィック4000用ドライバの最新版をダウンロードしてインストール。
 (私の場合はバージョン:15.28.12.64.2932 )
 OS再立上げ後、何も設定することなしにTVから音が出るようになりました。

 インテルダウンロードセンター:http://downloadcenter.intel.com/Default.aspx?lang=jpn

Macminitv


■Ref.
 ・Mac mini 関連ブログ記事の目次

■私が使ったHDMIケーブル(下図の商品の内3m の方を購入

   

2012年12月30日 (日)

Mac mini (2012年モデル)購入

今まで使っていたDELL Inspiron 530s は、「ファン音が大きい」「たまにダウンする」などトラブルが多くなって
きたのでMac mini を購入しました。

■Mac mini を選んだ理由
 iMacとMac mini のどちらを購入するか少し迷ったのですが、液晶下部のリンゴマークがあるスペースが
 デザイン的にどうしても好きになれなかっためMac mini を購入しました。
 その他Mac mini を選んだ理由を記すと以下のようになります。

 ・OS      :この家の中で増えてきたApple製品との親和性が高いMac OS X が付属。
           またBoot Camp でWndowsPCとして使うことができる。(Windows OSは別途購入する必要あり)
 ・サイズ    :小さい。また見える場所に置いても周りと調和するシンプルなデザイン。
 ・騒音     :静か (無音に近い)
 ・TV接続   :HDMI出力端子があるので、PC画面をテレビに出力できる。
           (最近映画はネット配信されたものを見ることが多いのでこれは便利です)
 ・Thunderbolt :スペック的に大型液晶モニタ(27インチ2560x1440)に接続出来そう。その内試してみます。
 ・USB      : 高速なUSB3 が4ポートある。USB3なので外付HDDなども高速にアクセスできそう。

 ・無線     :Wi-Fi は 802.11n (802.11a/b/g対応)。 Bluetooth 4.0も内蔵。
 ・性能     :Core i5 + メモリ4GB なので私の用途には十分 (私はゲームや動画編集は殆どしません)
 ・SDXC    :デジカメ写真入力に便利なカードスロットが付いている
 ・安い     :12月現在45000円辺り。十分安いと思います。

■目次 (mac 導入に関する記事を書きます)
 ・Mac mini を快適に使えるようHDDをSSDに交換 (高速化)
 ・SSD へ Mac OS X をインストール (インタネット・リカバリで新規インストール)
 ・Windows 8 Pro アップグレードを1200円で入手
 ・Windows 8 Pro を Mac mini へインストール
 ・Windows 8 ライセンス取得/確認方法

 ・Wi-Fi ルータ設定方法 (ルータ:WN-G300TVGR。回線:フレッツ光ネクスト。プロバイダ:nifty)
 ・
HDD, SSD 初期化方法
 ・Windows.old フォルダ削除方法
 ・Mac - Windows キー対応表
 ・mac で ISO ファイルを作る方法

 ・Apple TV を購入
 ・iCloud        (iPadとデータ共有)

■Windows8 導入後の各種トラブル&対処方法
 ・Mac mini の HDMI端子を使いTVに接続したとき、音が出ない場合の対処方法
 ・Chromeが遅くなった --> プロキシ設定変更で高速になりました

 ・古い画像処理ソフトで画像の保存ができなくなった -> 互換モード設定で治りました

■私が購入したMac miniスペック

型番 2012年10月モデル、Part No.:MD387J/A、Model No.:A1347
CPU Core i5
2.5GHzデュアルコアIntel (Turbo Boost使用時最大3.1GHz)、3MB三次キャッシュ
メモリ 4GB(2GB x 2)1,600MHz DDR3メモリ
HDD 500GB 5400rmp
無線 ・802.11n Wi-Fiワイヤレスネットワーク接続3、IEEE 802.11a/b/gに対応
・Bluetooth 4.0
有線LAN ギガビットEthernet (10/100/1000BASE-T 、RJ-45コネクタ)
メモリカード SDXCカードスロット
グラフィックス Intel HD Graphics 4000
HDMI マルチチャネルオーディオ出力に対応するHDMIポート
Thunderbolt
(最大10 Gbps)
• Mini DisplayPort出力に標準対応
• DVI出力:Mini DisplayPort - DVIアダプタ(別売り)を使用
• VGA出力:Mini DisplayPort - VGAアダプタ(別売り)を使用
• デュアルリンクDVI出力:Mini DisplayPort - Dual-Link DVIアダプタ(別売り)
オーディオ ・光オーディオライン入力ミニジャック(デジタル/アナログ)
・光オーディオライン出力/ヘッドフォンミニジャック(デジタル/アナログ)
・スピーカー内臓 (音楽鑑賞用途としては性能が低いと思います)
その他入出力 ・USB3 (4ポート) 
・FireWire800 (最大800 Mbps)
・IR(赤外線)レシーバ

■備考
 2012年12月現在一部機種の画像出力で「白飛び」問題が発生しているようです。
 私の mac は問題ありませんでした。(私が気にならないだけ?)

Windows 8 ライセンス取得/確認方法

Windows 8のライセンスは「アクションセンター>Windows ライセンス認証」で取得及び確認できます。

Win812_3

ライセンス未承認&ネットに未接続状態では「電話でのライセンス承認」というボタンが表示されます。

■Ref.
 ・
Windows8アップグレード版をMacのBoot Campに入れてみた!@ 週アス+
 ・
Windows8 アップグレード版を、クリーンインストール @ ☆ やまま の 楽しい毎日2 ☆
 ・「windows 8 アップグレード クリーンインストール」で検索


Mac mini 2012 関連記事の目次

より以前の記事一覧