fs

fs

fs模块提供了文件操作的接口

fs模块

名称类型参数返回值说明
openFile方法path:string,flags?:string[]File创建/打开文件
mkdir方法path:stringvoid创建文件夹
remove方法path:stringvoid删除文件/文件夹/子文件夹
rename方法oldPath:string, newPath:stringvoid修改文件或目录的名称,或者将文件或目录移动到新的位置
stat方法path:stringobject获取文件/目录的信息
readDir方法path:stringobject[]获取目录中的所有文件或子目录列表

openFile

创建或打开文件。

语法

fs.openFile(path:string,flags?:string[]);

参数

  • path:string 文件路径,支持绝对路径和相对路径
  • flag?:string[] (可选)文件打开模式,默认值:readOnly

flag可选值

  • readOnly 只读
  • writeOnly 只写
  • readWrite 读写
  • create 创建
  • append 追加
  • excl 文件存在时不覆盖。与 create 一起使用,文件必须不存在
  • trunc 如果文件存在,则清空文件。
  • sync 同步写入模式打开文件。数据在写入时不会被缓存在内存中,而是立即写入磁盘或其他存储设备

示例

import {fs} from "core";

//创建或打开文件。
let file = fs.openFile("/Desktop/1.txt");

// 带参数的打开并读写文件
let file1 = fs.openFile("/Desktop/test.txt", ["create", "readWrite"]);
file1.write("hello world");
//关闭文件
file1.close();

mkdir

创建文件夹,如果失败则会抛异常

语法

fs.mkdir(path:string);

参数

  • path:string 文件夹路径,支持绝对路径和相对路径

示例

import {fs} from "core";
//创建文件夹
fs.mkdir("/Desktop/temp/fs");

remove

删除文件\文件夹及其子文件夹和文件,如果失败则会抛异常

语法

fs.remove(path:string);

参数

  • path:string 文件夹路径,支持绝对路径和相对路径

示例

import {fs} from "core";
//删除文件夹及其子文件夹和文件
fs.remove("/Desktop/temp/fs");

rename

用于修改文件或目录的名称,或者将文件或目录移动到新的位置

语法

fs.rename(oldPath, newPath);

参数

  • oldPath:string 现有的文件或目录的路径,支持绝对路径和相对路径
  • newPath:string 新的文件或目录的路径,支持绝对路径和相对路径

示例

import {fs} from "core";
//文件重命名
fs.rename("/Desktop/temp/fs/1.js", "/Desktop/temp/fs/2.js");

使用场景

函数可以用于多种场景,包括:

  • 重命名文件:可以用于重命名文件,例如修改文件名或文件扩展名。
  • 移动文件:如果 newPath 包含不同的目录路径,可以实现文件的移动操作。
  • 重命名目录:不仅可以用于文件,也可以用于目录的重命名或移动。

注意事项

  • rename方法的行为在不同的操作系统上可能略有不同。在某些操作系统上,文件或目录不能跨文件系统移动。
  • 目标路径 newPath 如果已经存在,会导致重命名失败并抛异常。

stat

获取文件信息

语法

fs.stat(path:string);

参数

  • path:string 文件/目录路径,支持绝对路径和相对路径

示例

let stat = fs.stat("/Users/xxx/Desktop/xx.txt");
console.log(stat);

结果

{
  "dev": 16777229, // 文件所在设备的设备号
  "ino": 44283510, // 文件的索引节点号.文件系统中标识文件的唯一标识符。
  "mode": "-rw-r--r--", // 文件的模式和权限信息.表示文件的读、写、执行权限和文件类型(如普通文件、目录、符号链接等)。
  "nlink": 1, // 硬链接的数量,表示指向此文件的目录条目的数量。
  "uid": 501, // 文件所有者的用户ID
  "gid": 20, // 文件所有者的组ID
  "rdev": 0, // 若此文件为设备文件,则为设备的设备号。对于普通文件,该值一般为零。
  "size": 100, // 文件的大小,以字节为单位
  "blksize": 4096, // 文件系统I/O操作的块大小
  "blocks": 8, // 分配给文件的块数量
  "atimeMs": 1721121766929, // 上次访问时间,以毫秒为单位
  "mtimeMs": 1721121766927, // 上次修改时间,以毫秒为单位
  "ctimeMs": 1721121766927, // 上次状态改变时间,以毫秒为单位
  "birthtimeMs": 1718849916610 // 文件创建时间,以毫秒为单位。对于某些文件系统,创建时间可能不可用。
}

readDir

获取目录中的所有文件或子目录列表

语法

fs.readDir(path:string);

参数

示例

import {fs} from "core";
//获取文件列表
fs.readDir("/Desktop/temp/fs");

结果

[{
	"name": "test1",    //文件或目录名称
	"isDir": true,      //是否目录
  }, {
	"name": "test2.js", //文件或目录名称
	"isDir": false,     //是否目录
  }]

File

File代表一个打开的文件对象

File对象实现了ReaderWriter接口

名称类型返回值说明
stat方法object获取文件信息

stat

获取有关文件的状态信息

let file = fs.openFile("/Users/xxx/Desktop/xx.txt");
console.log(file.stat());
file.close();

打印结果如下:

{
  "isDir": false,     //是否文件夹
  "size": 64,         //文件大小
  "name": "xx.txt",   //文件名
  "fullName": "/Users/lzp/Desktop/xx.txt",      //文件全名
  "modTime": "[object date] 2024-03-27 14:07:24",     //文件修改时间
} 
更新时间 8/20/2024, 5:47:30 PM