aardio:fsys文件操作 获取当前目录 文件操作

zblog8个月前zblog问题解答20777

参考标准库/fsys文件操作/默认库

1、获取项目根目录的位置

getCurDir() = 获取当前目录。

当前目录易被改动,导致相对路径(例如 "./res/")位置变化。

路径首字符用单个斜杠或反斜杆表示「应用程序根目录」的写法更可靠,例如:(例如 "/res/")。

很多组件(例如文件对话框)都可能会悄悄改变当前目录

import fsys;
console.log(fsys.getCurDir() );

2、创建目录

createDir(.("目录路径",是否清空重建) = 创建目录并返回创建成功的完整文件路径,可创建多层目录,参数二可选

fsys.createDir("dir",true)

创建多层目录

fsys.createDir("dir\dirInner",true)

判断是否目录

isDir("__/*路径*/")  = 路径是否目录,调用attrib检查目标路径是否具有_FILE_ATTRIBUTE_DIRECTORY属性,参数为空字符串或 null 返回 false,包含不可见字符的错误路径可用「工具>文本文件>十六进制编辑器」,或 string.hex 函数查看

var dir1 = fsys.createDir("dir",true)if(fsys.isDir("dir")){
    console.log("是目录")
} else {
    console.log("不是目录")    
}

3、删除文件或目录

delete( = 删除文件或目录,成功返回 true,删除含畸形路径的目录请改用 fsys.remove 函数。此函数失败返回 false 时可用 fsys.opError 获取错误代码

删除文件

fsys.delete("hello.txt")

删除目录以及目录下的文件

fsys.delete("dir")

4、移动文件或目录

move(.(源路径,目标路径,FOF选项,进度标题,父窗口句柄) = 移动文件或目录,

源路径参数可以是多个路径组成的数组,其他参数可选。如果目标路径已存在或源路径含通配符则移动到目标目录下面,否则复制文件或目录到参数@2指定的目标路径。如果目标路径的父目录可能不存在,请先用 io.createDir 创建该目录,FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0,则显示操作界面与错误信息

将hello.txt文件移动到dir目录下

fsys.move("hello.txt","/dir")

5、复制文件或目录

copy(.(源路径,目标路径,FOF选项,进度标题,父窗口句柄) = 复制文件或目录,

源路径参数可以是多个路径组成的数组,其他参数可选。如果目标路径已存在或源路径含通配符则复制到目标目录下面,否则复制文件或目录到参数@2指定的目标路径。如果目标路径的父目录可能不存在,请先用 io.createDir 创建该目录

FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0\n则显示操作界面与错误信息

将hello.txt文件复制到dir目录下

fsys.copy("hello.txt","/dir")

6、重命名文件或目录

rename(.(源路径,目标路径,FOF选项) = 重命名文件或目录,其他参数可选

FOF选项为 0 或 不指定该选项但 fsys.opFlags 为 0,则显示操作界面与错误信息

fsys.rename("hello.txt","hi.txt")

7、搜索当前目录下的文件

list(.("目录路径","模式匹配","通配符") = 搜索当前目录下的文件,不搜索子目录下的文件,返回符合条件的文件名数组,子目录数组,以及全部子目录数组。注意有三个返回值,数组中使用文件名为键存放对应完整路径的值。除参数@1以外其他参数可选,参数@2使用模式匹配语法匹配文件名,模式匹配会成为第三个返回值的匹配条件,通配符默认值是"*.*",也可以传入包含多个通配符的数组,通配符对第三个返回值无效

var res = fsys.list(fsys.getCurDir())
console.dumpTable(res)

注意:是文件,不是目录。

8、打开或创建文件对象

fsys.file("__/*文件路径*/","w+") = 读写模式打开,创建新文件清空原文件

示例

import fsys.file;var fp = fsys.file("hello.txt","w+");
fp.close()

此时项目根目录下就会生成一个hello.txt文件

9、读取文件的内容

console.log(string.load("hello.txt"))

结果:hello world!

显示前5个字节的内容

import fsys.file;
file = fsys.file("hello.txt","r")
console.log( file.read(5) )

结果:hello

10、向文件中写入内容

string.save("hello.txt","2023-11-16")

11、解压 zip 文件

将hello.zip文件解压到my目录

复制代码
import zlib.unzip;var ok,err = zlib.unzip.extract( "hello.zip","/my",
    function(fileName,extractPath,fileInfo,size,unitSize,unitName){        if( size !== null )
            ..console.log( "正在解压文件",fileName,size++ unitName );        else {
            ..console.log( "正在解压目录",fileName );
        }        
        return true;
    }
)
复制代码

12、遍历目录

遍历该目录下的所有文件和目录,以及子目录下的文件和目录

复制代码
//批量处理文件fsys.enum( fsys.getCurDir(), //指定
    "*.*", //指定查询文件名,支持通配符,也可以用一个数组指定多个查询文件名    function(dirname,filename,fullpath,findData){        //可使用 return false 退出枚举过程
        
        if(filename){ 
            console.log("发现文件:",filename )
            console.log("完整路径",fullpath )            
            /*
            可以用 fsys.replace 函数替换文件内容,
            fsys.replace(fullpath,"查找的内容\d+","替换的内容",替换次数)
            
            fsys.replace 支持二进制文件或 UTF-8 文本文件,
            其他编码用 fsys.codepage 加载文件后用 string.replace() 函数替换。
            或者用 fsys.batch 实现批量处理并且支持自动处理编码转换。            */
        }        else{
            console.log("发现目录:",dirname)
        }
    } ,/*如果此参数为false则忽略子目录*/);
复制代码

 


标签: aardio

相关文章

ucs-4 这是啥编码 mb_convert_encoding($content, 'ucs-4', 'utf-8') 啥意思

UCS-4 是一种Unicode字符编码形式,全称为 Universal Character Set - 4 bytes。它是Unicode标准的一种实现,其中每个字符都使用4个字...

bin2hex 函数 php 将二进制数据转换为十六进制表示的字符串。

在PHP中,bin2hex 函数用于将二进制数据转换为十六进制表示的字符串。这个函数非常有用,尤其是在处理二进制数据并需要将其以人类可读的格式输出或存储时。函数原型如下:php复制代码str...

dechex 函数 ,用于将一个十进制数转换为其对应的十六进制字符串表示。

在PHP中,dechex() 函数是一个内置函数,用于将一个十进制数转换为其对应的十六进制字符串表示。 这个函数在处理数字数据时非常有用,特别是当你需要将数字以十六进制格式输出或存储时。...

ai提示词   数据收集器 相关资料

ai提示词 数据收集器 相关资料

你是数据收集器,根据后面给你提供的关键词,进行数据采集, 收集的数据需要以json格式返回,格式如下:{"content": "这是相关资料"}&n...

php数组相加 数组合并    array_merge() 函数

php数组相加 数组合并 array_merge() 函数

在 PHP 中,当你说“数组相加”时,这通常指的是将两个数组合并成一个新的数组。但是,因为数组可以是索引数组(数字键)或关联数组(字符串键),所以合并数组的方法会有所不同。以下是几种合并数组的常见方法...