文件系统访问
使用文件和文件夹对象
Adobe ExtendScript 定义了简化跨平台文件系统访问的类。(会用函数就完事了,左边都是废话)
两种对象
Folder
文件夹对象支持文件系统功能,例如遍历文件夹;创建、重命名或删除文件;或解析文件名。File
文件对象支持读写文件。
文件路径
读取路径
.. 表示上一级文件夹,/表示进入该文件夹,从左向右读取路径
文件路径表示方法
myFile.jsx | 当前文件 |
---|---|
./myFile.jsx | |
../myFile.jsx | 2 个点 表示父级文件夹的文件 |
../../myFile.jsx | 爷级文件夹的文件 |
../dir1/myFile.jsx | 父级文件夹的 dir 文件夹里的文件 |
URI 文件路径与平台路径区别
URI 路径 | 本地路径 |
---|---|
/c/dir/file | c:dirfile |
/remote/dir/file | D:remotedirfile |
/root/dir/file | D:rootdirfile |
~/dir/file | C:Documents and Settingsjdoedirfile |
平台差异
- Windows 和 Mac OS 路径名不区分大小写。 UNIX 中区分。
- Windows 上,斜杠 (
/
) 和反斜杠 (\
) 都是有效的路径分隔符。反斜杠是转义字符,需要使用双反斜杠 (\\
) 来表示(/
) - Mac OS 上,斜杠 (
/
) 和冒号 (:
) 都是有效的路径元素分隔符。
主目录
路径以波浪号 ( ~
)开头,代表用户的主目录。它对应于平台的 HOME
环境变量。
Mac OS 默认主目录是/Users/username
/home/username 或/users/username.
Windows 默认为用户的主目录,通常是文件夹。C:\Documents and Settings\username
文件访问报错列表
文件或文件夹不存在 | 文件或文件夹不存在,但父文件夹存在。 |
---|---|
文件或文件夹已存在 | 文件或文件夹已存在。 |
I/O 设备未打开 | 试图对已关闭的文件进行 I/O 操作。 |
读取 EOF | 尝试读取超出文件末尾的内容。 |
转换错误 | 文件内容无法转换为 Unicode。 |
更多报错请访问 | https://extendscript.docsforadobe.dev/file-system-access/file-access-error-messages.html |
文件类
文件类的属性与函数,不用先实例化一个对象,直接可以调用
创建 File 对象
使用 File 函数或 new 创建 File 对象。
File([path]); // 可以返回文件对象或者文件夹对象
new File([path]); // 用new只会返回文件对象
path
:可选。文件的绝对或相对路径,平台或 URI 格式;存储在对象中的值是绝对路径。
var f = new File("123.jsx"); // 定义同级目录的 123.jsx 文件
alert(f.exists); // 判断该文件是否存在
fs 系统名称
说明:File 类的静态属性,可直接访问。返回系统名称
返回:字符串,只读。Windows,Macintosh 或 Unix 三者之一。
示例:显示本机文件是什么系统
File.fs; // 返回Windows,我用的Windows系统
decode() 字符串解码
File.decode( uri )
- uri:要解码的编码字符串。
所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ - _ . ! ~ * ‘ ( )
返回:解码后的字符串。
示例:解码字符串
File.decode("my%20file"); // 返回my file
encode() 字符串编码
File.encode( name )
- name :要编码的字符串。
所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ - _ . ! ~ * ‘ ( )
返回:编码后的字符串。
示例:编码字符串
File.decode("my file"); // 返回my%20file
isEncodingAvailable() 检查编码可用
File.isEncodingAvailable( name )
说明:检查给定的编码是否可用。
- name :编码名称。比如“ASCII” 、“binary” 、“UTF-8.”。
如果您的系统支持指定的编码,则返回 true,否则返回 false。
alert(File.isEncodingAvailable("binary")); // 判断是否支持二进制编码
openDialog() 打开对话框
File.openDialog( [prompt, filter, multiSelect] )
说明:打开文件浏览对话框,用户可以选择一个或多个文件,并创建新的 File 对象。
- prompt 可选。对话框左上角提示,字符串。
filter 可选。对话框显示的文件类型的过滤器。
Windows 中为过滤器表达式,例如 “JavaScript:.jsx;All files:.*“
分号 ( ;)一次性过滤所有类型;(jsx 和 all) 逗号 ( ,)过滤成下拉列表,一次选择一种类型(jsx 或 all) Mac OS 中,一个过滤器函数,接受一个 File 实例,如果文件应该包含在显示中,则返回 true,如果不应该包含,则返回 false。
multiSelect 可选。布尔值。为 true 时可以选择多个文件,返回值是一个数组。默认为 false。
返回:新的 File 对象或者 File 对象数组。如果用户取消,则返回 null。
示例:选择一个工程文件
var f = File.openDialog("请选择一个工程", "AE工程:*.aep,PR工程:*.prproj");
alert(f.name); // 返回选择文件的名称,如果多选则使用f[0].name
saveDialog 保存对话框
File.saveDialog( prompt[, preset] )
说明:打开文件浏览对话框,用户可以选择要保存的文件,并创建新的 File 对象。
- prompt 可选。对话框左上角提示,字符串。
- filter 可选,仅在 Windows 中,Mac OS 中不行。限制对话框中显示的文件类型的过滤器。过滤器表达式, “JavaScript:.jsx;All files:.*“
分号 ( ;)一次性过滤所有类型;(jsx 和 all) 逗号 ( ,)过滤成下拉列表,一次选择一种类型(jsx 或 all)
返回:新的 File 对象。如果用户取消,则返回 null。
文件对象
File 对象的属性
absoluteURI | String | URI 表示法中引用文件的完整路径名。只读。 |
---|---|---|
alias | Boolean | 为 true 时,则是文件别名或快捷方式。只读。 |
created | Date | 文件的创建日期,如果对象不引用磁盘上的文件,则为 null。只读。 |
creator | String | 在 Mac OS 中,文件创建者,字符串。在 Windows 或 UNIX 中,值为“????”。只读。 |
displayName | String | 文件的本地化名称,不带路径。只读。 |
encoding | String | 获取或设置后续读/写操作的编码。如果无法识别,则使用系统默认编码。特殊的编码器 BINARY 用于读取二进制文件。它将文件的每个字节存储为一个 Unicode 字符,而不管任何编码。写入时,将每个 Unicode 字符的低字节视为单个字节进行写入。 |
eof | Boolean | 如果为 true,则尝试读取当前文件末尾,或者文件未打开,只读。可以用来判断文件是否打开 |
error | String | 描述上次文件系统错误的消息;通常由文件系统设置,但脚本可以设置它。设置此值会清除任何错误消息并重置打开文件的错误位。如果没有错误,则为空字符串。 |
exists | Boolean | 当为 true 时,存在的文件或文件系统别名。只读。 |
fsName | String | 文件的特定平台的完整路径名。只读。常用于获取完整路径 |
fullName | String | URI 表示法表示文件的完整路径名。只读。 |
hidden | Boolean | 如果为 true,则该文件不会显示在特定于平台的文件浏览器中。读/写。如果对象引用了文件系统别名或快捷方式,则该标志会在别名上更改,而不是在原始文件上更改。 |
length | Number | 文件的大小(以字节为单位)。只能为未打开的文件设置,在这种情况下,它会用 0 字节截断或填充文件到新长度。 |
lineFeed | String | 如何在文件系统中写入换行符。其中之一: Windows- Windows 风格 Macintosh- Mac OS 风格 Unix- UNIX 风格 |
localizedName | String | 引用文件的绝对 URI 的文件名部分的本地化版本,没有路径规范。只读。 |
modified | Date | 引用文件的最后修改日期,如果对象不引用磁盘上的文件,则为 null。只读。 |
name | String | 引用文件的绝对 URI 的文件名部分,不带路径规范。只读。 |
parent | Folder | 包含此文件的文件夹的 Folder 对象。只读。 |
path | String | 引用文件的绝对 URI 的路径部分,不包含文件名。只读。 |
readonly | Boolean | 当为 true 时,防止文件被更改或删除。如果引用的文件是文件系统别名或快捷方式,则更改别名上的标志,而不是原始文件上的标志。 |
relativeURI | String | URI 表示法中引用文件的路径名,相对于当前文件夹。只读。 |
type | String | 文件类型为四字符字符串。在 Mac OS 中,Mac OS 文件类型。在 Windows 中,”appl”对.EXE 文件,”shlb”对.DLL 文件和”TEXT” 任何其他文件。如果文件不存在,则值为“????”。只读。 |
changePath() 更改路径
fileObj.changePath( path )
说明:更改引用文件的路径。
参数:
- path:新路径的绝对或相对路径,字符串。
返回:成功则返回 true。
示例:更改创建文件的路径
var f = File("测试.jsx"); // 定义一个文件
f.changePath("测试2.jsx"); // 更改
alert(f.displayName); // 此时f的名字已经更改为 测试2.jsx
close() 关闭
fileObj.close()
说明:关闭打开的文件。一般用于读取文件后,关闭该文件
参数:无
返回:成功时返回 true,如果有 I/O 错误则返回 false。
copy() 复制
fileObj.copy( target )
说明:复制一个文件。如果已存在文件,则会覆盖该文件。
参数:
- target:带有指向目标位置的 URI 路径的字符串,或引用目标位置的 File 对象。
返回:如果复制成功则返回 true,否则返回 false。
案例:复制文件
var f = File("测试.jsx");
f.copy("测试2.jsx"); // 会出现一个新文件“测试2.jsx”,如果先有文件了,则会覆盖
createAlias() 创建别名
fileObj.createAlias( [path] ))
说明:使该文件成为目标文件的别名或快捷方式。
参数:
- path:目标文件路径,字符串。
返回:如果操作成功则返回 true,否则返回 false。
示例:创建一个脚本文件的快捷方式
var f = File("测试脚本的快捷方式"); // 定义一个快捷方式文件(不要后缀)
f.createAlias("测试脚本.jsx");
execute() 打开文件
fileObj.execute()
说明:使用适当的应用程序打开此文件,就像在文件浏览器中双击一样。您可以使用此方法运行脚本、启动应用程序等。
参数:无
返回:如果应用程序启动成功,则立即返回 true。
示例:打开文件
var f = File("测试.jsx");
f.execute();
getRelativeURI() 获取 URI 路径
fileObj.getRelativeURI( [basePath] )
说明:以 URI 表示法检索此文件的 URI,相对于指定的基本路径。如果未提供基本路径,则 URI 相对于当前文件夹的路径。
参数:
- basePath:可选。包含相对 URI 的基本路径的字符串。默认为当前文件夹。
返回:返回一个包含相对 URI 的字符串。
var f = File("A E.jsx");
alert(f.getRelativeURI("../")); // 返回 jsx/A20%E.jsx (上级目录+当前文件)
open() 打开文件
fileObj.open( mode [,type] [,creator] )
说明:打开文件以进行后续读/写操作。该方法解析所有别名以查找文件。
参数:mode
读/写模式,字符串:
r:(读)打开文件开始读。如果文件不存在或找不到,则调用失败。
w: (write) 打开文件开始写。如果文件存在,则销毁其内容。如果该文件不存在,则创建一个新的空文件。
e: (edit) 打开文件进行读写。
a: (append) 以追加模式打开文件,并将当前位置移动到文件末尾。
type: 可选。在 Mac OS 中,新创建的文件的类型,一个 4 字符的字符串。在 Windows 和 UNIX 中被忽略。
creator: 可选。在 Mac OS 中,新创建文件的创建者,一个 4 字符的字符串。在 Windows 和 UNIX 中被忽略。
返回:如果文件已成功打开,则返回 true,否则返回 false。
::: danger :::
多次打开文件时要小心。操作系统允许您这样做,但使用两个不同的 File 对象写入文件,可能会破坏数据。
openDlg() 打开文件对话框
fileObj.openDlg( [prompt][,filter][,multiSelect] )
说明:打开特定平台的文件浏览对话框,用户可以选择一个或多个文件,并创建新的 File 对象来表示所选文件。与类中的方法 File.openDialog() 的不同之处在于,对话框会默认显示当前文件夹。
参数: | 参数 | 描述 | |——|——| | prompt | 可选。对话框左上角提示,字符串。 | | filter | 可选。对话框显示的文件类型的过滤器。Windows 中为过滤器表达式,例如 “JavaScript:.jsx;All files:.*“分号 ( ;)一次性过滤所有类型;(jsx 和 all)逗号 ( ,)过滤成下拉列表,一次选择一种类型(jsx 或 all)Mac OS 中,一个过滤器函数,接受一个 File 实例,如果文件应该包含在显示中,则返回 true,如果不应该包含,则返回 false。 | | multiSelect | 可选。布尔值。为 true 时可以选择多个文件,返回值是一个数组。默认为 false。 |
返回:如果用户单击 OK ,则返回所选文件或文件夹的 File 或 Folder 对象,或文件对象数组(第三参数选 fasle 时)。如果用户取消,则返回 null。
示例:打开指定目录文件夹对话框,并显示选中文件的名称
var f = File("~");
ff = f.openDlg("选择一个文件", "All files:*.*", false);
alert(ff.displayName);
read() 文件读取全部
fileObj.read( [chars] )
说明:从当前位置开始读取文件的内容。
参数:
- chars:可选。整数,指定要读取的字符数。默认情况下,从当前位置读取到文件末尾。如果文件已编码,则可能会读取多个字节以创建单个 Unicode 字符。
返回:包含指定数量的字符串。
readch() 文件读取单字符
fileObj.readch()
说明:从文件的当前位置读取单个文本字符。换行符被识别为 CR、LF、CRLF 或 LFCR 对。如果文件已编码,则可能会读取多个字节以创建单个 Unicode 字符。
参数:无
返回:包含该字符的字符串。
readln() 文件读取一行
fileObj.readln()
说明:从文件的当前位置读取一行文本,并以字符串形式返回。换行符被识别为 CR、LF、CRLF 或 LFCR 对。如果文件已编码,则可能会读取多个字节以创建单个 Unicode 字符。
参数:无
返回:包含文本的字符串。
remove() 强制删除文件
fileObj.remove()
说明:立即从磁盘中删除与此对象关联的文件,不会放在系统回收站!!
参数:无
::: danger
:::
无法撤消。建议删除前提示用户权限。
返回:如果文件删除成功,则返回 true。
rename() 改名
fileObj.rename( newName )
说明:重命名关联的文件。不解析别名,但重命名引用的别名或快捷方式文件本身。
参数:
- newName:新文件名,没有路径。
返回:成功则返回 true。
var f = File("测试.jsx");
f.rename("测试2.jsx"); // 文件更名为测试2.jsx
resolve() 快捷方式转文件(不懂)
fileObj.resolve()
说明:如果此对象引用别名或快捷方式,则此方法解析该别名并返回一个新的 File 对象,该对象引用别名解析到的文件系统元素。
参数:
返回:返回新的 File 对象,如果此对象未引用别名,或者无法解析别名,则返回 null。
saveDlg() 文件保存对话框
fileObj.saveDlg( [prompt][, preset] )
说明:打开内置的特定于平台的文件浏览对话框,用户可以在其中选择要保存信息的现有文件位置,并创建一个新的 File 对象来表示所选文件。
与类方法saveDialog() 的不同之处在于,它将当前文件夹预设为此 File 对象的父文件夹,并将文件预设为该对象的关联文件。
参数:
参数 | 描述 |
---|---|
prompt | 可选。如果对话框允许提示,则包含提示文本的字符串。 |
preset | 可选,仅在 Windows 中。限制对话框中显示的文件类型的过滤器。过滤器表达式,例如 Mac OS 中未使用。”JavaScript:.jsx;All files:.*“用分号 ( ;)分隔表达式以一次过滤所有这些类型;(显示 jsxAND all)用逗号 ( ,)分隔以填充过滤器下拉列表,一次选择一种类型(显示 jsxOR all) |
返回:如果用户单击 OK ,则返回所选文件的 File 对象。如果用户取消,则返回 null。
seek() 寻找
fileObj.seek( pos[, mode] )
说明:寻找文件中的指定位置。新位置不能小于 0 或大于当前文件字符长度。
参数:
参数 | 描述 |
---|---|
pos | 文件中的新当前位置,作为与开始、当前位置或结束的偏移量(以字节为单位),具体取决于模式。 |
mode | 可选。搜索模式,以下之一: - 0: 寻找绝对位置,其中 pos=0 是文件的第一个字节。这是默认设置。- 1: 相对于当前位置搜索。2: 从文件末尾向后查找。 |
返回:如果位置已更改,则返回 true。
tell()
fileObj.tell()
说明:检索当前位置作为距文件开头的字节偏移量。
参数:无
返回:一个数字,即位置索引。
write() 文件写入
fileObj.write( text[, text…]… )
说明:将指定的文本写入当前位置的文件。对于编码文件,写入单个 Unicode 字符可能会写入多个字节。
参数:text 要写入的一个或多个字符串,将它们连接起来形成一个字符串。
返回:成功返回 true。
::: info 提示 :::
注意不要写入在另一个应用程序或对象中打开的文件,因为这会覆盖现有数据。
writeln() 文件写入一行
fileObj.writeln (text[, text…]…)
说明:将指定文本写入文件的当前位置,并以换行属性指定的样式附加换行序列。对于编码文件,写入单个 Unicode 字符可能会写入多个字节。
参数:text 要写入的一个或多个字符串,将它们连接起来形成一个字符串。
::: info 提示 :::
注意不要写入在另一个应用程序或对象中打开的文件,因为这会覆盖现有数据。
返回:成功返回 true。
文件夹类
以独立于平台的方式表示文件系统文件夹或目录。除非另有说明,否则所有属性和方法都会自动解析文件系统别名并作用于原始文件。
文件夹对象构造函数
要创建 Folder 对象,请使用 Folder 函数或 new 运算符。构造函数接受完整或部分路径名,并返回新对象。
Folder([path]); // 可以返回文件对象或文件夹对象
new Folder([path]); // 只能返回文件夹对象
path
可选。与此对象关联的文件夹的绝对或相对路径,以 URI
格式指定;请参阅指定路径。存储在对象中的值是绝对路径。
该路径不需要引用现有文件夹。如果未提供,则会生成一个临时名称。
如果路径引用现有文件:
- Folder 函数返回一个 File 对象,而不是一个 Folder 对象。
- new 运算符为不存在的同名文件夹返回一个 Folder 对象。
文件夹类的属性
这些属性可用作 Folder 类的静态属性。不用先创建一个实例再访问。
名称 | 类型 | 介绍 | window 示例 | mac 示例 |
---|---|---|---|---|
appData | 文件夹 | 包含所有用户的应用程序数据的文件夹的 Folder 对象。只读。 | %PROGRAMDATA% 默认为 C:\ProgramData | /Library/Application Support |
appPackage | 文件夹 | 包含正在运行的应用程序包的文件夹的 Folder 对象。只读。 | C:\Program Files (x86)\Adobe\Adobe ExtendScript Toolkit CC\ | /Applications/Adobe ExtendScript Toolkit CC/ExtendScript Toolkit.app |
commonFiles | 文件夹 | 包含所有程序共有的文件的文件夹的 Folder 对象。只读。 | %CommonProgramFiles% 默认为 C:\Program Files\Common Files | /Library/Application Support |
current | 文件夹 | 当前文件夹的 Folder 对象。分配一个 Folder 对象或一个包含新路径名的字符串来设置当前文件夹。 | ||
desktop | 文件夹 | 包含用户桌面的文件夹的 Folder 对象。只读。 | C:\Users\[username]\Desktop | ~/Desktop |
fs | 字符串 | 文件系统的名称。只读。Windows,Macintosh 或 Unix。 | ||
myDocuments | 文件夹 | 用户默认文档文件夹的 Folder 对象。只读。 | C:\Users\[username]\Documents | ~/Documents |
startup | 文件夹 | 包含正在运行的应用程序的可执行映像的文件夹的 Folder 对象。只读。 | ||
system | 文件夹 | 包含操作系统文件的文件夹的 Folder 对象。只读。 | %windir%默认为 C:\Windows | ~/System |
temp | 文件夹 | 临时文件的默认文件夹的 Folder 对象。只读。 | ||
trash | 文件夹 | 在 Mac OS 中,包含已删除项目的文件夹的 Folder 对象。 | 回收站是数据库而不是文件夹,值为 null. | 已删除项目的文件夹 |
userData | 文件夹 | 包含当前用户的应用程序数据的文件夹的 Folder 对象。只读。 | %APPDATA% 默认为 C:\Users\[username]\Appdata\Roaming | ~/Library/Application Support |
decode 解码
Folder.decode( uri )
- uri:要解码的编码字符串。
所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ – _ . ! ~ * ‘ ( )
返回:解码后的字符串。
示例:解码字符串
Folder.decode("my%20file"); // 返回 my file
encode() 编码
Folder.encode( name )
- name :要编码的字符串。
所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ – _ . ! ~ * ‘ ( )
返回:编码后的字符串。
示例:编码字符串
Folder.decode("my file"); // 返回 my%20file
isEncodingAvailable()
Folder.isEncodingAvailable( name )
说明:检查给定的编码是否可用。
- name :编码名称。比如“ASCII” 、“binary” 、“UTF-8.”。
如果您的系统支持指定的编码,则返回 true,否则返回 false。
alert(Folder.isEncodingAvailable("binary")); // 判断是否支持二进制编码
selectDialog() 选择对话框
Folder.selectDialog( [prompt] )
说明:打开特定平台的文件浏览对话框,并为选定文件夹创建一个新的文件夹对象。与对象方法selectDlg() 的不同之处在于它不预选文件夹。不太好用!
参数:
- prompt:可选。如果对话框允许提示,则包含提示文本的字符串。
返回:如果用户单击 OK,则返回所选文件夹对象。如果用户取消,则返回 null。
文件夹对象属性
这些属性可用于 Folder 对象。
名称 | 类型 | 说明 |
---|---|---|
absoluteURI | URI 表示法中引用文件夹的完整路径名。 | |
alias | 布尔值 | 当为 true 时,对象指的是文件系统别名或快捷方式。 |
created | 日期 | 引用文件夹的创建日期,如果对象不引用磁盘上的文件夹,则为 null。 |
displayName | 引用文件夹的本地化名称,不带路径。 | |
error | 描述最近文件系统错误的消息;请参阅文件访问错误消息。 | |
exists | 布尔值 | 如果为 true,则此对象指的是文件系统中当前存在的文件夹。 |
fsName | 作为完整路径名的引用文件夹的平台特定名称。常用于获取完整路径 | |
fullName | URI 表示法中引用文件夹的完整路径名。 | |
localizedName | 引用文件的绝对 URI 的文件夹名称部分的本地化版本,没有路径规范。 | |
modified | 日期 | 引用文件夹上次修改的日期,或者 null 对象是否引用磁盘上的文件夹。 |
name | 引用文件的绝对 URI 的文件夹名称部分,不带路径规范。 | |
parent | 文件夹 | 包含此文件夹的文件夹的 Folder 对象,或者 null 此对象是否引用卷的根文件夹。 |
path | 引用文件夹的绝对 URI 的路径部分,不包含文件夹名称。 | |
relativeURI | URI 表示法中引用文件夹的路径名,相对于当前文件夹。 |
文件夹对象函数
changePath() 更改路径()
folderObj.changePath( path )
说明:更改引用文件夹的路径规范。
参数:
- path:包含新路径的字符串,绝对或相对于当前父文件夹。
返回:成功返回 true。
create() 创建文件夹
folderObj.create()
说明:在此对象的路径属性给定的位置创建一个文件夹。
返回:如果文件夹创建成功,则返回 true。
execute() 打开文件夹
folderObj.execute ()
说明:在特定于平台的文件浏览器中打开此文件夹(就像在文件浏览器中双击一样)。
返回:如果文件夹成功打开,则立即返回 true。
getFiles() 获取文件
folderObj.getFiles( [mask] )
说明:检索此文件夹的内容,由提供的 mask 过滤。
参数:
- mask:可选。文件名的搜索过滤。可以包含问号 ( ?) 和星号 ( ) 通配符的字符串。默认为“ ”,匹配所有文件名。
返回: File 和 Folder 对象的数组,如果此对象的引用文件夹不存在,则返回 null。
::: info 提示 在 Windows 中,所有别名都以扩展名.lnk;结尾。ExtendScript 在找到时从文件名中删除它,以保持与其他操作系统的兼容性。您可以通过提供搜索掩码来搜索所有别名”*.lnk”,但请注意,此类代码不可移植。
也可以是将 File 或 Folder 对象作为其参数的函数的名称。为搜索中找到的每个文件或文件夹调用它;如果它返回 true,则对象被添加到返回数组中。 :::
getRelativeURI()
folderObj.getRelativeURI( [basePath] )
说明:以 URI 表示法检索此文件夹相对于指定基本路径或当前文件夹的路径。
参数:
- basePath:可选。包含相对 URI 的基本路径的字符串。默认为当前文件夹。
返回:返回一个包含相对 URI 的字符串。
remove() 删除文件夹
folderObj.remove()
说明:立即从磁盘中删除与此对象关联的空文件夹,而不将其移至系统垃圾箱。文件夹必须为空才能删除。不解析别名;相反,删除引用的别名或快捷方式文件本身。
::: info 提示 无法撤消。建议删除前提示用户权限。 :::
返回:如果文件夹删除成功,则返回 true。
rename() 文件夹改名
folderObj.rename( newName )
说明:重命名关联的文件夹。不解析别名;相反,重命名引用的别名或快捷方式文件本身。
参数:
- newName:新文件夹名称,没有路径。
返回:成功返回 true。
resolve()
folderObj.resolve()
说明:如果此对象引用别名或快捷方式,则此方法解析该别名
返回:返回一个新 Folder 对象,该对象引用别名解析到的文件系统元素,如果此对象不引用别名,或者别名无法解析,则返回 null。
selectDlg() 选择文件夹对话框
folderObj.selectDlg( prompt )
说明:打开特定平台的文件浏览对话框,并为选定的文件夹创建一个文件夹对象。与类方法 selectDialog() 的不同之处在于,它会优先预选了这个文件夹。不好用!
参数:
- prompt:如果对话框允许提示,则包含提示文本的字符串。
返回:如果用户单击 OK,则返回所选文件或文件夹的文件或文件夹对象。如果用户取消,则返回 null
var ff = Folder("../");
ff.selectDlg(); // 当前文件上级目录是com.test文件夹