文件系统访问

使用文件和文件夹对象

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 对象。

  1. File([path]); // 可以返回文件对象或者文件夹对象
  2. new File([path]); // 用new只会返回文件对象

path:可选。文件的绝对或相对路径,平台或 URI 格式;存储在对象中的值是绝对路径。

  1. var f = new File("123.jsx"); // 定义同级目录的 123.jsx 文件
  2. alert(f.exists); // 判断该文件是否存在

fs 系统名称

说明:File 类的静态属性,可直接访问。返回系统名称

返回:字符串,只读。Windows,Macintosh 或 Unix 三者之一。

示例:显示本机文件是什么系统

  1. File.fs; // 返回Windows,我用的Windows系统

decode() 字符串解码

File.decode( uri )

  • uri:要解码的编码字符串。

所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ - _ . ! ~ * ‘ ( )

返回:解码后的字符串。

示例:解码字符串

  1. File.decode("my%20file"); // 返回my file

encode() 字符串编码

File.encode( name )

  • name :要编码的字符串。

所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ - _ . ! ~ * ‘ ( )

返回:编码后的字符串。

示例:编码字符串

  1. File.decode("my file"); // 返回my%20file

isEncodingAvailable() 检查编码可用

File.isEncodingAvailable( name )

说明:检查给定的编码是否可用。

  • name :编码名称。比如“ASCII” 、“binary” 、“UTF-8.”。

如果您的系统支持指定的编码,则返回 true,否则返回 false。

  1. 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。

示例:选择一个工程文件

文件系统访问 - 图1

  1. var f = File.openDialog("请选择一个工程", "AE工程:*.aep,PR工程:*.prproj");
  2. 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。

示例:更改创建文件的路径

  1. var f = File("测试.jsx"); // 定义一个文件
  2. f.changePath("测试2.jsx"); // 更改
  3. alert(f.displayName); // 此时f的名字已经更改为 测试2.jsx

close() 关闭

fileObj.close()

说明:关闭打开的文件。一般用于读取文件后,关闭该文件

参数:无

返回:成功时返回 true,如果有 I/O 错误则返回 false。

copy() 复制

fileObj.copy( target )

说明:复制一个文件。如果已存在文件,则会覆盖该文件。

参数:

  • target:带有指向目标位置的 URI 路径的字符串,或引用目标位置的 File 对象。

返回:如果复制成功则返回 true,否则返回 false。

案例:复制文件

  1. var f = File("测试.jsx");
  2. f.copy("测试2.jsx"); // 会出现一个新文件“测试2.jsx”,如果先有文件了,则会覆盖

createAlias() 创建别名

fileObj.createAlias( [path] ))

说明:使该文件成为目标文件的别名或快捷方式。

参数:

  • path:目标文件路径,字符串。

返回:如果操作成功则返回 true,否则返回 false。

示例:创建一个脚本文件的快捷方式

  1. var f = File("测试脚本的快捷方式"); // 定义一个快捷方式文件(不要后缀)
  2. f.createAlias("测试脚本.jsx");

execute() 打开文件

fileObj.execute()

说明:使用适当的应用程序打开此文件,就像在文件浏览器中双击一样。您可以使用此方法运行脚本、启动应用程序等。

参数:无

返回:如果应用程序启动成功,则立即返回 true。

示例:打开文件

  1. var f = File("测试.jsx");
  2. f.execute();

getRelativeURI() 获取 URI 路径

fileObj.getRelativeURI( [basePath] )

说明:以 URI 表示法检索此文件的 URI,相对于指定的基本路径。如果未提供基本路径,则 URI 相对于当前文件夹的路径。

参数:

  • basePath:可选。包含相对 URI 的基本路径的字符串。默认为当前文件夹。

返回:返回一个包含相对 URI 的字符串。

  1. var f = File("A E.jsx");
  2. 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。

示例:打开指定目录文件夹对话框,并显示选中文件的名称

  1. var f = File("~");
  2. ff = f.openDlg("选择一个文件", "All files:*.*", false);
  3. 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。

  1. var f = File("测试.jsx");
  2. 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 运算符。构造函数接受完整或部分路径名,并返回新对象。

  1. Folder([path]); // 可以返回文件对象或文件夹对象
  2. 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 的字符,以下情况除外:/ – _ . ! ~ * ‘ ( )

返回:解码后的字符串。

示例:解码字符串

  1. Folder.decode("my%20file"); // 返回 my file

encode() 编码

Folder.encode( name )

  • name :要编码的字符串。

所有特殊字符都以 UTF-8 编码并存储为以百分号开头、后跟两个十六进制数字的转义字符。特殊字符是指编码值大于 127 的字符,以下情况除外:/ – _ . ! ~ * ‘ ( )

返回:编码后的字符串。

示例:编码字符串

  1. Folder.decode("my file"); // 返回 my%20file

isEncodingAvailable()

Folder.isEncodingAvailable( name )

说明:检查给定的编码是否可用。

  • name :编码名称。比如“ASCII” 、“binary” 、“UTF-8.”。

如果您的系统支持指定的编码,则返回 true,否则返回 false。

  1. alert(Folder.isEncodingAvailable("binary")); // 判断是否支持二进制编码

selectDialog() 选择对话框

Folder.selectDialog( [prompt] )

说明:打开特定平台的文件浏览对话框,并为选定文件夹创建一个新的文件夹对象。与对象方法selectDlg() 的不同之处在于它不预选文件夹。不太好用!

文件系统访问 - 图2

参数:

  • 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

文件系统访问 - 图3

  1. var ff = Folder("../");
  2. ff.selectDlg(); // 当前文件上级目录是com.test文件夹