.remove() не является ошибкой функции в Photoshop CC 2017 ExtendScript Tool Kit

Я пытаюсь изменить исходный PSD, а затем удалить исходный и хочу сохранить только как новый jpg. Мой код отлично работает с этой строкой:

activeDocument.close(SaveOptions.DONOTSAVECHANGES);	// Close Original Image

Но когда я заменяю строку выше этой строкой:

psd.remove();	// I want to delete Original file

Это дает мне remove() is not a function ошибку.

Вот полный сценарий. Я устал читать Photoshop JS Guide 2015, а также гуглить этот вопрос, но не нашел ответа.

var defaultRulerUnits = preferences.rulerUnits; 
preferences.rulerUnits = Units.PIXELS;

if (documents.length >= 1){

var hres = 0;
var vres = 0;
var OldName = activeDocument.name.substring(0, activeDocument.name.indexOf('.'));
var CurrentFolder = activeDocument.path;
var psd = app.activeDocument;
hres = activeDocument.width;
vres = activeDocument.height;

activeDocument.selection.selectAll();

if (activeDocument.layers.length >1) {
	activeDocument.selection.copy(true);
}

else{
	if (activeDocument.layers.length =1) {
	activeDocument.selection.copy(false);
	}
}

psd.remove();	// I want to delete Original file
       
var newDoc = documents.add(hres, vres, 72, OldName, NewDocumentMode.RGB, DocumentFill.WHITE);

newDoc.paste();

jpgFile = new File(CurrentFolder + "/" + OldName+ ".jpg" );
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = 12;
newDoc.saveAs(jpgFile, jpgSaveOptions, true,   Extension.LOWERCASE);

}


person Junaid    schedule 19.06.2017    source источник
comment
ясно, что у document нет метода удаления   -  person Jaromanda X    schedule 19.06.2017
comment
Как у меня есть метод удаления. Руководство Photoshop JS ничего не говорило о методах удаления. Я пробовал psd.remove(psd);,psd.remove(File);,psd.remove(activeDocument); любую другую комбинацию, но все они выдают одну и ту же ошибку.   -  person Junaid    schedule 19.06.2017


Ответы (2)


 srcDoc.activeLayer.remove();

Удаляет активный слой. Нет метода .remove() для удаления файла.

person Mr Mystery Guest    schedule 21.06.2017

Немного поздно в тему, но надеюсь, что это поможет кому-то еще.

Метод удаления ожидает местоположение файла. Вы можете выполнить удаление исходного файла следующим образом:

var activeDoc = app.activeDocument;
var docPath = new Folder(activeDoc.path);
var psd = new File(docPath + "/" + activeDoc.name);
...
psd.remove();

Изменить: также должен включать ссылку на этот удобный справочный документ ESTK, где я узнал о работе с объектом File: http://estk.aenhancers.com/3%20-%20File%20System%20Access/file-object.html?highlight=delete

person InternetRebel    schedule 27.06.2019