質問編集履歴
2
更新後のコード
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,27 +26,33 @@
|
|
26
26
|
|
27
27
|
```ここに言語を入力
|
28
28
|
|
29
|
-
var TARGET_FOLDER_ID = "xxx
|
29
|
+
var TARGET_FOLDER_ID = "xxx";
|
30
30
|
|
31
|
-
var UPDATE_SHEET_ID = "xxxx
|
31
|
+
var UPDATE_SHEET_ID = "xxxx";
|
32
32
|
|
33
|
-
var UPDATE_SHEET_NAME = "
|
33
|
+
var UPDATE_SHEET_NAME = "sheet";
|
34
34
|
|
35
|
-
var SEND_MAIL_ADDRESS = ["xxx"]
|
35
|
+
var SEND_MAIL_ADDRESS = ["xxx@xxx"]
|
36
36
|
|
37
37
|
|
38
38
|
|
39
39
|
function updateCheck() {
|
40
40
|
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
// 対象フォルダ配下のファイル最終更新日時を取得。
|
46
|
+
|
47
|
+
var lastUpdateMap = {};
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
function filesearch(TARGET_FOLDER_ID) {
|
52
|
+
|
41
53
|
var targetFolder = DriveApp.getFolderById(TARGET_FOLDER_ID);
|
42
54
|
|
43
55
|
var files = targetFolder.getFiles();
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
// 対象フォルダ配下のファイル最終更新日時を取得。
|
48
|
-
|
49
|
-
var lastUpdateMap = {};
|
50
56
|
|
51
57
|
while (files.hasNext()) {
|
52
58
|
|
@@ -56,9 +62,29 @@
|
|
56
62
|
|
57
63
|
}
|
58
64
|
|
65
|
+
var folders = DriveApp.searchFolders("'" + TARGET_FOLDER_ID + "' in parents");
|
66
|
+
|
67
|
+
while (folders.hasNext()) {
|
68
|
+
|
69
|
+
var folder = folders.next();
|
70
|
+
|
71
|
+
lastUpdateMap[folder.getName()] = folder.getDateCreated();
|
72
|
+
|
73
|
+
filesearch(folder.getId());
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
filesearch();
|
59
82
|
|
60
83
|
|
84
|
+
|
85
|
+
|
86
|
+
|
61
|
-
// スプレッドシート記載
|
87
|
+
// スプレッドシートに記載されているファイル名と更新日時を取得。
|
62
88
|
|
63
89
|
var spreadsheet = SpreadsheetApp.openById(UPDATE_SHEET_ID);
|
64
90
|
|
@@ -68,11 +94,11 @@
|
|
68
94
|
|
69
95
|
|
70
96
|
|
71
|
-
// Mapに変換
|
97
|
+
// 取得したデータをMapに変換。
|
72
98
|
|
73
99
|
var sheetData = {};
|
74
100
|
|
75
|
-
// 2からstart。
|
101
|
+
// 説明とヘッダを記載しているため2からstart。
|
76
102
|
|
77
103
|
for (var i = 2; i < data.length; i++) {
|
78
104
|
|
@@ -90,11 +116,13 @@
|
|
90
116
|
|
91
117
|
if(key in sheetData) {
|
92
118
|
|
119
|
+
// ファイル名がシートに存在する場合。
|
120
|
+
|
93
121
|
if(lastUpdateMap[key] > sheetData[key].lastUpdate) {
|
94
122
|
|
95
123
|
// フォルダが更新されている場合。
|
96
124
|
|
97
|
-
sheet.getRange(sheetData[key].rowNo,
|
125
|
+
sheet.getRange(sheetData[key].rowNo, 3).setValue(lastUpdateMap[key]);
|
98
126
|
|
99
127
|
updateFolderList.push(key);
|
100
128
|
|
@@ -102,9 +130,11 @@
|
|
102
130
|
|
103
131
|
} else {
|
104
132
|
|
133
|
+
// ファイル名がシートに存在しない場合。
|
134
|
+
|
105
135
|
sheet.getRange(sheet.getLastRow() + 1, 1).setValue(key);
|
106
136
|
|
107
|
-
sheet.getRange(sheet.getLastRow(),
|
137
|
+
sheet.getRange(sheet.getLastRow(), 3).setValue(lastUpdateMap[key]);
|
108
138
|
|
109
139
|
updateFolderList.push(key);
|
110
140
|
|
@@ -114,17 +144,19 @@
|
|
114
144
|
|
115
145
|
|
116
146
|
|
117
|
-
// 更新された情報をメール送信。
|
147
|
+
// 新規及び更新された情報をメール送信。
|
118
148
|
|
119
149
|
if (updateFolderList.length != 0) {
|
120
150
|
|
121
151
|
SEND_MAIL_ADDRESS.forEach(function(o,i) {
|
122
152
|
|
123
|
-
MailApp.sendEmail(SEND_MAIL_ADDRESS[i],"
|
153
|
+
MailApp.sendEmail(SEND_MAIL_ADDRESS[i],"追加通知",
|
124
154
|
|
125
|
-
"
|
155
|
+
"写真が追加されました。" + "\n" +
|
126
156
|
|
157
|
+
"追加されたファイルは以下の通りです。" + "\n" +
|
158
|
+
|
127
|
-
updateFolderList.join("\n")
|
159
|
+
updateFolderList.join("\n") + "\n\n"
|
128
160
|
|
129
161
|
);
|
130
162
|
|
1
試したことのURLを変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,9 +30,9 @@
|
|
30
30
|
|
31
31
|
var UPDATE_SHEET_ID = "xxxxx";
|
32
32
|
|
33
|
-
var UPDATE_SHEET_NAME = "
|
33
|
+
var UPDATE_SHEET_NAME = "xxxx;
|
34
34
|
|
35
|
-
var SEND_MAIL_ADDRESS = ["xxx
|
35
|
+
var SEND_MAIL_ADDRESS = ["xxx"]
|
36
36
|
|
37
37
|
|
38
38
|
|
@@ -140,8 +140,8 @@
|
|
140
140
|
|
141
141
|
### 試したこと
|
142
142
|
|
143
|
-
|
144
|
-
|
145
143
|
https://ctrlq.org/code/20034-search-drive-files
|
146
144
|
|
145
|
+
https://stackoverflow.com/questions/36577071/search-files-inside-sub-folders-in-google-drive
|
146
|
+
|
147
147
|
などを見たのですが、私の技量では理解できませんでした。
|