返回文件属性,
以_FILE_ATTRIBUTE_前缀的常量标志各属性
注意:WIN10 新版存在设为隐藏文件后变只读的问题
参数为空字符串、null、不存在的路径都会 返回 -1
添加文件属性
参数一为文件路径
参数三可以用 | 操作符连接多个属性
成功返回新属性,失败返回null
移除件属性
参数一为文件路径
参数二可以用 | 操作符连接多个属性
成功返回新属性,失败返回null
清空目录但不删除目录自身。
可选用参数 @2 指定要删除的子文件或子目录通配符。
如果参数 @1 指定的不是目录,则忽略不操作
复制文件或目录,
此函数失败返回 false 时可用 fsys.opError 获取错误代码
注意:包含不可见字符的错误路径可用「工具>文本文件>十六进制编辑器」
或 string.hex 函数查看
复制文件或目录,
源路径参数可以是多个路径组成的数组,其他参数可选。
如果目标路径已存在或源路径含通配符则复制到目标目录下面,
否则复制文件或目录到参数@2指定的目标路径。
如果目标路径的父目录可能不存在,请先用 io.createDir 创建该目录
FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0
则显示操作界面与错误信息
创建目录并返回创建成功的完整文件路径
可创建多层目录,参数二可选
创建指定路径的父目录.
删除文件或目录,成功返回 true,
删除含畸形路径的目录请改用 fsys.remove 函数。
此函数失败返回 false 时可用 fsys.opError 获取错误代码
删除文件或目录,成功返回 true,
路径参数可以是多个路径组成的数组,其他参数可选
支持非空目录,文件名支持通配符
FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0
则显示操作界面与错误信息
删除文件或目录,成功返回true,
此函数失败返回 false 时可用 fsys.opError 获取错误代码
删除文件或目录,成功返回true,
路径参数只能是字符串,其他参数可选
如果删除失败,则在下次系统重启时删除文件,
重启删除目录之前必须先清空目录,
重启删除文件的顺序与调用时的顺序相同
fsys.enum( "/遍历目录路径", "*.*",,
function(dirPath,dirName){
/*处理每个子目录前首先调用此函数,返回false跳过该目录*/
return false;
}
);
fsys.enum( "/遍历目录路径", "*.*",
function(dir,filename,fullpath,findData){
if(filename){
io.print("发现文件:"+filename,"完整路径:"+fullpath,"当前目录完整路径"+dir)
/*可使用 return false 退出枚举文件过程*/
}
else{
io.print( "发现目录,目录名称(非完整路径):" + dir )
}
}
,/*如果此参数为false则忽略子目录*/
);
fsys.enum( "/遍历目录路径", "*.*",
function(dir,filename,fullpath,findData){
if(filename){
io.print("发现文件:"+filename,"完整路径:"+fullpath)/*可使用 return false退出枚举文件过程*/
}
else{
io.print( "发现目录:" + dir )
}
},
function(dirPath,dirName){
/*处理每个子目录前首先调用此函数,返回false跳过该目录*/
return true;
}
);
该函数参数支持math.size64支持的所有参数类型
转换字节长度到适合的最大单位表示的文本,
单位使用 bytes,KB,MB,GB等
转换字节长度到适合的最大单位( bytes,KB,MB,GB等 )
低位用于表示4GB以下的长度,高位以4GB为最小单位表示长度
将::FILETIME结构体转换为time对象
获取当前目录。
当前目录易被改动,导致相对路径(例如 "./res/")位置变化。
路径首字符用单个斜杠或反斜杆表示「应用程序根目录」的写法更可靠,
例如:(例如 "/res/")。
很多组件(例如文件对话框)都可能会悄悄改变当前目录
返回应用程序所在分区,以冒号结束
返回文件后缀名,转换为小写.
无后缀名则返回null空值
返回路径的所指向的文件名(或目录名称)
返回指定路径的父目录
获取特殊文件夹。
参数 @1 使用_CSIDL开头的常量指定特殊文件夹的 CSIDL 标识,
省略参数 @1 则默认值获取桌面目录。
可选参数 @2 指定是否将 PIDL 转换为路径返回,也可以是一个用于拼接的相对路径
参数@2指定为false,则返回原始 PIDL 句柄。
可选使用参数 @3 指定访问令牌,用于修改用户目录。
io.getSpecial 函数的功能与此函数相同,
但 io.getSpecial 可指定多个用于拼接的文件路径参数,并且不能返回 PIDL。
fsys.knownFolder 可用于获取更多已知的特殊文件夹
获取默认用户的特殊文件夹,
参数@1使用_CSIDL开头的常量指定特殊文件夹的 CSIDL 标识,
参数用法同getSpecial,不同的是访问令牌默认指定为 default 用户,
注意 VISTA 以后的系统在此目录下创建文件或目录需要管理权限
返回系统目录
可选在参数中指定子路径并返回完整路径
返回临时目录,
注意拼接目录与子路径应当使用 io.joinpath 函数
获取临时文件路径应当改用 io.tmpname 函数
返回windows目录
可选在参数中指定子路径并返回完整路径
for m in fsys.gmatch( ,"./*指定模式串,
用于在参数@1指定的文件中循环全局搜索符合条件的字符串,
有几个匹配分组迭代器返回几个值,
注意表达式不能以^开始*/") {
}
路径转换为名称ID(PIDL)\路径必须存在
参数 @1 指定的文件路径是否指向一个目录。
调用 fsys.attrib 函数检查目标路径是否具有 _FILE_ATTRIBUTE_DIRECTORY 属性
参数为空字符串或 null 返回 false
包含不可见字符的错误路径可用「工具>文本文件>十六进制编辑器」
或 string.hex 函数查看
参数 @1 指定的文件路径是否指向一个文件。
调用 fsys.attrib 函数检查目标路径是否存在且不具有 _FILE_ATTRIBUTE_DIRECTORY 属性
参数为空字符串或 null 返回 false
包含不可见字符的错误路径可用「工具>文本文件>十六进制编辑器」
或 string.hex 函数查看
是否隐藏文件
调用attrib检查文件是否具有_FILE_ATTRIBUTE_HIDDEN属性
注意:WIN10 新版存在设为隐藏文件后变只读的问题
文件是否只读
调用attrib检查文件是否具有_FILE_ATTRIBUTE_READONLY属性
是否系统文件
调用attrib检查文件是否具有_FILE_ATTRIBUTE_SYSTEM属性
注意根目录不可以圆点字符开始
可追加任意个子路径参数,如果子路径是绝对路径则返回子路径
拼接时可以使用空参数,但不可全部参数为空
搜索当前目录下的文件,不搜索子目录下的文件,
返回匹配条件的文件名数组、子目录数组、全部子目录数组(无论是否匹配)。
注意有 3 个返回值,数组中使用文件名为键存放对应完整路径的值。
除参数@1以外其他参数可选,
参数@2使用模式匹配语法匹配文件名,模式匹配会成为第三个返回值的匹配条件,
通配符默认值是"*.*",也可以传入包含多个通配符的数组,通配符对第三个返回值无效
转换为完整路径,并将短文件名转换为长文件名
移动文件或目录。
此函数失败返回 false 时可用 fsys.opError 获取错误代码
移动文件或目录,
源路径参数可以是多个路径组成的数组,其他参数可选。
如果目标路径已存在或源路径含通配符则移动到目标目录下面,
否则复制文件或目录到参数@2指定的目标路径。
如果目标路径的父目录可能不存在,请先用 io.createDir 创建该目录
FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0
则显示操作界面与错误信息
fsys 库函数 copy,move,delete,deleteEx,rename
最后一次执行的错误代码,操作成功为 0。
这个值也是系统函数 SHFileOperationW 返回的错误代码,仅供调试时参考。
此错误代码可作为 lasterr 函数的参数获取错误信息,但并不完全准确。
请参考: https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shfileoperationw
包含不可见字符的错误路径可用「工具>文本文件>十六进制编辑器」
或 string.hex 函数查看
fsys 库函数 copy,move,delete,deleteEx,rename
未指定 flags 参数时使用的默认值,默认为 0x614/*_FOF_NO_UI*/
指定此值为 0 则默认显示文件操作界面与错误信息界面
该选项详细说明请参考 FILEOP_FLAGS 文档
https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shfileopstructw
名称ID(PIDL)转换为路径
重命名文件或目录,
此函数失败返回 false 时可用 fsys.opError 获取错误代码
重命名文件或目录,其他参数可选
FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0
则显示操作界面与错误信息
替换文件内容,
查找串支持模式匹配,\支持所有string.replace函数支持的替换串格式,
不指定替换次数则替换所有匹配串
成功返回替换次数,否则返回 null
查找文件。
检查程序根目录、当前工作目录、系统目录
是否包含指定文件,找到则返回文件完整路径。
不搜寻子目录,参数 @1 支持 "*","?" 等通配符。
检查一个或多个目录下是否包含指定文件
如果存在返回完整路径,否则返回 null。
不搜寻子目录,参数 @1 支持 "*","?" 等通配符。
在指定目录以及其子目录下搜寻指定文件,
如果存在返回完整路径,否则返回 null。
内部调用 fsys.enum 查找,参数 @1 支持 "*","?" 等通配符
设置文件属性
设置当前目录。
当前目录易被改动,导致相对路径(例如 "./res/")位置变化。
路径首字符用单个斜杠或反斜杆表示「应用程序根目录」的写法更可靠,
例如:(例如 "/res/")。
很多组件(例如文件对话框)都可能会悄悄改变当前目录
转为符合 8.3 格式短路径。
如果文件名符合 8.3 格式且包含空格(例如目录名不超过 8 个字符),则不会去除空格。
如果文件不存在,返回空值。
短文件名指向会因实际文件数变更,所以不能把短路径存入数据库
且并不保证会去除空格。
创建 process 对象或调用类似函数时,
用数组或多参数指定启动参数可自动处理包含空格的路径。
0x1f
0x21
0x22
0x20
0x15
8.3 格式文件名
UTF16 编码,请调用 string.fromUtf16 转换
长文件名
UTF16编码,请调用 string.fromUtf16 转换
以数值表示的文件属性
文件创建时间
请调用 fsys.fromFileTime 转换为 time 对象
文件最后一次访问时间
请调用 fsys.fromFileTime 转换为 time 对象
文件最后一次修改时间
请调用 fsys.fromFileTime 转换为 time 对象
是否目录,
仅在 fsys.enum 的回调参数中有效
文件长度高 32 位
件长度低 32 位
0x1f
0x21
0x22
0x20
0x15
_CSIDL_ADMINTOOLS=0x30
_CSIDL_ALTSTARTUP=0x1d
_CSIDL_APPDATA=0x1a
_CSIDL_BITBUCKET=0xa
_CSIDL_CDBURN_AREA=0x3b
_CSIDL_COMMON_ADMINTOOLS=0x2f
_CSIDL_COMMON_ALTSTARTUP=0x1e
_CSIDL_COMMON_APPDATA=0x23
_CSIDL_COMMON_DESKTOPDIRECTORY=0x19
_CSIDL_COMMON_DOCUMENTS=0x2e
_CSIDL_COMMON_MUSIC=0x35
_CSIDL_COMMON_OEM_LINKS=0x3a
_CSIDL_COMMON_PICTURES=0x36
_CSIDL_COMMON_PROGRAMS=0x17
_CSIDL_COMMON_STARTMENU=0x16
_CSIDL_COMMON_STARTUP=0x18
_CSIDL_COMMON_TEMPLATES=0x2d
_CSIDL_COMMON_VIDEO=0x37
_CSIDL_COMPUTERSNEARME=0x3d
_CSIDL_CONNECTIONS=0x31
_CSIDL_CONTROLS=3
_CSIDL_DESKTOP=0
_CSIDL_DESKTOPDIRECTORY=0x10
_CSIDL_DRIVES=0x11
_CSIDL_FAVORITES=6
_CSIDL_FLAG_CREATE=0x8000
_CSIDL_FLAG_DONT_UNEXPAND=0x2000
_CSIDL_FLAG_DONT_VERIFY=0x4000
_CSIDL_FLAG_MASK=0xFF00
_CSIDL_FLAG_NO_ALIAS=0x1000
_CSIDL_FLAG_PER_USER_INIT=0x800
_CSIDL_FONTS=0x14
_CSIDL_INTERNET=1
_CSIDL_LOCAL_APPDATA=0x1c
_CSIDL_MYDOCUMENTS=0x5
_CSIDL_MYMUSIC=0xd
_CSIDL_MYPICTURES=0x27
_CSIDL_MYVIDEO=0xe
_CSIDL_NETHOOD=0x13
_CSIDL_NETWORK=0x12
_CSIDL_PERSONAL=5
_CSIDL_PRINTERS=4
_CSIDL_PRINTHOOD=0x1b
_CSIDL_PROFILE=0x28
_CSIDL_PROGRAMS=2
_CSIDL_PROGRAM_FILES=0x26
_CSIDL_PROGRAM_FILESX86=0x2a
_CSIDL_PROGRAM_FILES_COMMON=0x2b
_CSIDL_PROGRAM_FILES_COMMONX86=0x2c
_CSIDL_RECENT=0x8
_CSIDL_RESOURCES=0x38
_CSIDL_RESOURCES_LOCALIZED=0x39
_CSIDL_SENDTO=0x9
_CSIDL_STARTMENU=0xb
_CSIDL_STARTUP=7
_CSIDL_SYSTEM=0x25
_CSIDL_SYSTEMX86=0x29
_CSIDL_WINDOWS=0x24
_FOF_ALLOWUNDO=0x40
_FOF_CONFIRMMOUSE=0x2
_FOF_FILESONLY=0x80
_FOF_NOCONFIRMATION=0x10
_FOF_NOCONFIRMMKDIR=0x200
_FOF_NOCOPYSECURITYATTRIBS=0x0800
_FOF_NOERRORUI=0x0400
_FOF_NORECURSION=0x1000
_FOF_NO_UI=0x614
_FOF_RENAMEONCOLLISION=0x8
_FOF_SILENT=0x4
_FOF_SIMPLEPROGRESS=0x100
_FOF_WANTMAPPINGHANDLE=0x20
_MAX_WPATH_BYTES=0x208