mfs文件读写
# 文件路径
local mfs = require("mfs")
local basedir = "base"
-- 创建文件夹,检查是否成功
local s,res = mfs.mkdir(basedir)
文件创建在该目录下:
/mnt/user_data/mnbox/user/scripts/user
# mfs 模块的功能函数及其用途
## 1.mfs.mkdir(path)
2.功能: 创建一个新的目录。
3.参数:
4.path: 目录的路径。
## 2.mfs.store(path, data)
6.功能: 将数据写入指定文件,覆盖文件原有内容。
7.参数:
8.path: 文件的路径。
9.data: 要写入的数据。
## 3.mfs.load(path)
11.功能: 读取指定文件的内容。
12.参数:
13.path: 文件的路径。
## 4.mfs.append(path, data)
15.功能: 将数据追加到文件末尾。
16.参数:
17.path: 文件的路径。
18.data: 要追加的数据。
## 5.mfs.readdir(path)
20.功能: 读取目录下的所有文件和子目录的信息。
21.参数:
22.path: 目录的路径。
local files = mfs.readdir(userdir); -- 读取文件夹
log("table length = " .. table_length(files));
-- 判断文件夹是否为空,删除空文件夹
if (table_length(files) == 0) then
log("empty dir");
mfs.rmdir(userdir);
return;
end
-- 遍历打印文件夹下的所有文件和文件夹
for i, file_desc in pairs(files) do
-- print("file name: " .. file_desc.name);
if (file_desc.isdir) then
log(file_desc.name .. " is a directory");
else
log(file_desc.name .. " is a file");
end
end
## 6.mfs.rmdir(path)
24.功能: 删除文件夹。
25.参数:
26.path: 目录的路径。
这些函数提供了基本的文件和目录操作功能,使你能够在 Lua 脚本中管理文件系统。使用这些函数可以执行创建、删除目录,读写文件,以及列出目录内容等操作。
## 7.mfs.remove(path)
24.功能: 删除文件。
25.参数:
26.path: 目录的路径
```lua
local mfs = require("mfs");
local basedir = "base";
-- 创建文件夹
mfs.mkdir(basedir);
local mydata = "Lua is good";
-- 将mydata数据写入文件, 会覆盖文件原有内容
mfs.store(basedir .. "/testfile", mydata);
-- 读取文件内容
local data = mfs.load(basedir .. "/testfile");
-- 打印读取到的内容
log(data);
local bytes = string.char(0x30, 0x31, 0x32, 0x11, 0x22, 0xAA);
mfs.store(basedir .. "/binfile", bytes);
local data = mfs.load(basedir .. "/binfile");
print(data:byte(1, -1));
mfs.mkdir(basedir .. "/sub_dir");
mfs.store(basedir .. "/sub_dir/subfile", "Hello, subdir!");
mfs.mkdir(basedir .. "/sub_dir2");
for i = 0, 10 do
local appdata = "Hello" .. i .. "\n";
-- 以追加的形式将数据添加到文件末尾,原有内容依然存在
mfs.append(basedir .. "/test_append", appdata);
end
-- 传入参数是个表,返回表的长度
local function table_length(tbl)
local count = 0;
-- 循环遍历表,计算表长度
for k, v in pairs(tbl) do
count = count + 1;
end
return count;
end
-- 读取文件夹下所有文件名
local function walk_fs(userdir)
log("\nwalk dir:" .. userdir);
local files = mfs.readdir(userdir); -- 读取文件夹
log("table length = " .. table_length(files));
-- 判断文件夹是否为空,删除空文件夹
if (table_length(files) == 0) then
log("empty dir");
mfs.rmdir(userdir);
return;
end
-- 遍历打印文件夹下的所有文件和文件夹
for i, file_desc in pairs(files) do
-- print("file name: " .. file_desc.name);
if (file_desc.isdir) then
log(file_desc.name .. " is a directory");
else
log(file_desc.name .. " is a file");
end
end
end
-- 调用
walk_fs(basedir);
```
cp -fv /mnt/user_data/mnbox/program/bin/workparh.json /tmp/