【发布时间】:2018-03-30 00:11:38
【问题描述】:
我找到了一个 javascript,但它首先让用户选择一个文件夹来获取文件。我想创建一个监视文件夹,所以我想告诉 javascript 从中获取文件的文件夹,而不是让用户选择。我无法为我的生活弄清楚如何做到这一点。我知道applescript,但不能掌握javascript。谢谢!
这是我认为我需要改变的地方:
function main() {
// user settings
var prefs = new Object();
prefs.sourceFolder = '/Volumes/SERVER_RAID/•Current/MPC'; // default browse location (default: '~')
prefs.removeFileExtensions = true; // remove filename extensions for imported layers (default: true)
prefs.savePrompt = true; // display save prompt after import is complete (default: false)
prefs.closeAfterSave = true; // close import document after saving (default: false)
// prompt for source folder
var sourceFolder = Folder.selectDialog('Where are the Front and Back files?', Folder(prefs.sourceFolder));
// ensure the source folder is valid
if (!sourceFolder) {
return;
}
else if (!sourceFolder.exists) {
alert('Source folder not found.', 'Script Stopped', true);
return;
}
// add source folder to user settings
prefs.sourceFolder = sourceFolder;
// get a list of files
var fileArray = getFiles(prefs.sourceFolder);
// if files were found, proceed with import
if (fileArray.length) {
importFolderAsLayers(fileArray, prefs);
}
// otherwise, diplay message
else {
alert("The selected folder doesn't contain any recognized images.", 'No Files Found', false);
}
}
///////////////////////////////////////////////////////////////////////////////
// getFiles - get all files within the specified source
///////////////////////////////////////////////////////////////////////////////
function getFiles(sourceFolder) {
// declare local variables
var fileArray = new Array();
var extRE = /\.(?:png)$/i;
// get all files in source folder
var docs = sourceFolder.getFiles();
var len = docs.length;
for (var i = 0; i < len; i++) {
var doc = docs[i];
// only match files (not folders)
if (doc instanceof File) {
// store all recognized files into an array
var docName = doc.name;
if (docName.match(extRE)) {
fileArray.push(doc);
}
}
}
// return file array
return fileArray;
}
///////////////////////////////////////////////////////////////////////////////
【问题讨论】:
-
我知道我可以使用输入文件函数,但不知道它会去哪里或替换什么。
-
不是跨浏览器、跨平台的方式,没有。
-
好吧...只是不明白我猜。似乎这将是一件简单的事情。与其让用户给它使用的目录,你会认为我可以事先告诉它要使用的目录。这将是一个仅 MAC 的应用程序。而不是使用 Folder.selectDialog 我可以只提供我想要使用的目录。
-
等一下,Folder.selectDialog... 这是一个网络应用程序还是其他什么?
-
它只是一个小脚本应用程序,用于在 MAC 上自动执行 Photoshop 工作流程中的一些事情。不是网络应用程序。脚本抓取文件夹中的文件并将它们作为 Photoshop 文档中的图层打开。只想为其提供图像所在文件夹的目录,而不是抛出用户需要与之交互的对话框。想让它更“放手”。
标签: javascript directory applescript photoshop finder