Photoshop javascript遍历文件夹层次结构UPWARDS

时间:2014-09-04 12:26:17

标签: javascript recursion photoshop

首先让我告诉你,我只有基本的编程经验,但我几乎是MaxScript(Autodesk 3ds max脚本语言)的专业人士。现在我开始为Photoshop编写一个脚本,主要执行以下操作:

1)以某种方式操纵一个开放的PSD文件

2)将该文档保存为相对于PSD文件位置的特定文件夹中的TIFF。

因此,假设PSD文件位于文件夹 c / project / postproduction / working / workingSubfolder

TIFF文件应该位于文件夹 c / project / postproduction / export / exportSubfolder

重要的是:

  • “工作”和“导出”文件夹位于同一级别
  • 有时没有“workingSubfolder”文件夹 更多。不可预测。
  • 脚本需要复制“export”文件夹中“working”文件夹的文件夹结构,但显然可以在那里保存TIFF而不是PSD。

我现在需要的是一种从PSD文件向上遍历层次结构的方法,直到找到名为“export”的文件夹。然后进入“export”文件夹,在那里复制“working”文件夹内的结构,如果那个结构还不存在,然后保存与那里的PSD文件同名的TIF文件。

我在互联网中发现了一个关于递归向下遍历文件夹树的数据,但没有任何向上。也许我错了?对于任何体面的程序员来说,我觉得这是一个非常简单的问题。

1 个答案:

答案 0 :(得分:0)

这样的事情应该让你开始......基本上它只是通过一些战略性替换来计算当前文档路径的输出路径。如果您确实需要更多地使用文件系统对象,请参阅Photoshop安装目录中的“Javascript工具指南”。

var workingPath  = app.activeDocument.path.toString();
var exportPath = workingPath.replace('working', 'export');
var filename = app.activeDocument.name.toString().replace('.psd', '.tif');
var folder = new Folder(exportPath);

if (!folder.exists)
    folder.create();

 var options = new TiffSaveOptions;
//set any options you need to here....

var exportFile = new File(exportPath + '/' + filename )

 app.activeDocument.saveAs(exportFile, options)