Google 文档中的自动增量文件名?
Autoincrement filename in Google Docs?
如何为我的所有帐户向 Docs 添加功能,当我打开新文档的文件时,它需要找到我现在所在的文件夹 + 最后一个文件名并递增 1 并保存。
默认 Google Doc 保存文件名称为 'Untitled document',但我希望它保存它:
folder_1.1001.doc
folder_1.1002.doc
如果我在下一个文件夹 2 中创建文件:
folder_2.001.doc
folder_2.002.doc。
我的错误代码:
// Show current folder name & root folder name
function makeFilename() {
// Get current folder name
var ui = DocumentApp.getUi();
thisFileId = DocumentApp.getActiveDocument().getId();
var thisFile = DriveApp.getFolderById(thisFileId);
var parentFolder = thisFile.getParents();
var currentFolderName = parentFolder.next();
ui.alert(currentFolderName);
// get all files in currentFolderName
var files = parentFolder;
while (files.hasNext()) {
var file = files.next();
// Logger.log(file.getName());
DocumentApp.getUi().alert(file.getName());
}
}
这是一个示例代码:
// Show current folder name
function makeFilename() {
// Get current file name
const ui = DocumentApp.getUi(),
doc = DocumentApp.getActiveDocument(), //Added
thisFileId = doc.getId(),
thisFileName = doc.getName();
const thisFile = DriveApp.getFileById(thisFileId);//Modified from getFolderById
const parentFolder = thisFile.getParents();
const currentFolder = parentFolder.next();//Modified from currentFolderName
const currentFolderName = currentFolder.getName();//Added
//ui.alert(currentFolderName);
/*Store a init file in root to getLatestFileNumber*/
var initIter = DriveApp.getFilesByName(currentFolderName + 'init000'),
initBool = initIter.hasNext(),
init;
if (!initBool) {
init = DriveApp.createFile(currentFolderName + 'init000', '0');
} else {
init = initIter.next();
}
/*Get current Number and format it to 4 digits*/
var currentNum = init.getBlob().getDataAsString() * 1 + 1,
formatNum = ('00000' + currentNum).substr(-4);
/*If filename already contains folderName, do nothing*/
if (!(thisFileName.search(currentFolderName) + 1)) {
doc.setName(currentFolderName + formatNum).saveAndClose();
init.setContent(currentNum);
}
}
参考文献:
如何为我的所有帐户向 Docs 添加功能,当我打开新文档的文件时,它需要找到我现在所在的文件夹 + 最后一个文件名并递增 1 并保存。
默认 Google Doc 保存文件名称为 'Untitled document',但我希望它保存它:
folder_1.1001.doc
folder_1.1002.doc
如果我在下一个文件夹 2 中创建文件:
folder_2.001.doc
folder_2.002.doc。
我的错误代码:
// Show current folder name & root folder name
function makeFilename() {
// Get current folder name
var ui = DocumentApp.getUi();
thisFileId = DocumentApp.getActiveDocument().getId();
var thisFile = DriveApp.getFolderById(thisFileId);
var parentFolder = thisFile.getParents();
var currentFolderName = parentFolder.next();
ui.alert(currentFolderName);
// get all files in currentFolderName
var files = parentFolder;
while (files.hasNext()) {
var file = files.next();
// Logger.log(file.getName());
DocumentApp.getUi().alert(file.getName());
}
}
这是一个示例代码:
// Show current folder name
function makeFilename() {
// Get current file name
const ui = DocumentApp.getUi(),
doc = DocumentApp.getActiveDocument(), //Added
thisFileId = doc.getId(),
thisFileName = doc.getName();
const thisFile = DriveApp.getFileById(thisFileId);//Modified from getFolderById
const parentFolder = thisFile.getParents();
const currentFolder = parentFolder.next();//Modified from currentFolderName
const currentFolderName = currentFolder.getName();//Added
//ui.alert(currentFolderName);
/*Store a init file in root to getLatestFileNumber*/
var initIter = DriveApp.getFilesByName(currentFolderName + 'init000'),
initBool = initIter.hasNext(),
init;
if (!initBool) {
init = DriveApp.createFile(currentFolderName + 'init000', '0');
} else {
init = initIter.next();
}
/*Get current Number and format it to 4 digits*/
var currentNum = init.getBlob().getDataAsString() * 1 + 1,
formatNum = ('00000' + currentNum).substr(-4);
/*If filename already contains folderName, do nothing*/
if (!(thisFileName.search(currentFolderName) + 1)) {
doc.setName(currentFolderName + formatNum).saveAndClose();
init.setContent(currentNum);
}
}