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

zblog9个月前zblog问题解答36332

参考标准库/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

相关文章

zblog后台的字符图标 ico

zblog后台的字符图标http://zblog.gongshi5.com/tool/ico.html...

重建表 复制表 好办法

#(1)复制表结构。 ##  从要复制的表结构复制表语句 ,设置表名字, 注意 XIUGAI ENGINE=MYISAM A...

mysql优化表分析表重建索引

优化MySQL表是提高数据库性能的关键步骤。以下是一些常见的优化表的方法:分析表:使用 ANALYZE TABLE 命令可以更新表的统计信息,这有助于MySQL查询优化器生成更有效...

zblog链式sql不支持 ESCAPE  ,但是sqlite 必须要用ESCAPE ,硬改sql不优雅了

zblog链式sql不支持 ESCAPE ,但是sqlite 必须要用ESCAPE ,硬改sql不优雅了

/zb_system/function/lib/zblogphp.php通过用户名获取用户实例(不区分大小写). public function GetMemberByN...

zblog定义配置信息,在哪个文件?如ShowHint('good')中good是怎么来的?允许哪些,不允许哪些?

zblog定义配置信息,在哪个文件?如ShowHint('good')中good是怎么来的?允许哪些,不允许哪些?

zblog定义配置信息,在哪个文件?如ShowHint('good')中good是怎么来的?允许哪些,不允许哪些?在《zblog的ShowHint()函数,(后台页面顶部)输出函数,z...

error_reporting(0); php 关闭 PHP 的错误报告 display_errors memory_limit set_time_limit 内存限制+ 时间限制 +不显示错误

error_reporting(0); 是 PHP 中的一个配置指令,用于关闭 PHP 的错误报告功能。在 PHP 运行过程中,如果没有开启错误报告,那么当出现错误时,PHP 不会显示任何错...