Bun 是一个功能强大的 JavaScript 运行时,它提供了许多内置的工具和库来简化开发工作。其中,文件操作是前端开发中常见的需求之一。在本章中,我们将详细介绍如何使用 Bun 来进行文件操作,包括读取、写入、删除文件等。
文件读取
使用 fs.readFile
读取文件
Bun 提供了一个类似于 Node.js 的 fs
模块,可以用来读取文件。下面是一个简单的例子:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - -------- - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- ------------------ ------- ----- ----- -- - -- ----- ----- ---- ------------------ ---
使用 fs.readFileSync
同步读取文件
如果你更喜欢同步操作,可以使用 readFileSync
方法:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - ------------ - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- --- - ----- ---- - ---------------------- -------- ------------------ - ----- ----- - ------------------- -
文件写入
使用 fs.writeFile
写入文件
fs.writeFile
可以用来异步写入文件:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - --------- - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- ------------------- ------- -------- ------- ----- -- - -- ----- ----- ---- ----------------------- ---
使用 fs.writeFileSync
同步写入文件
同样地,你可以使用 writeFileSync
方法来进行同步写入:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - ------------- - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- --- - ----------------------- ------- -------- -------- ----------------------- - ----- ----- - ------------------- -
文件删除
使用 fs.unlink
删除文件
fs.unlink
可以用来删除指定路径的文件:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - ------ - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- ---------------- ----- -- - -- ----- ----- ---- ----------------------- ---
使用 fs.unlinkSync
同步删除文件
对于同步操作,你可以使用 unlinkSync
方法:
-- -------------------- ---- ------- ------ - ------------- - ---- -------------------------------------------- ------ - ---------- - ---- ------------------------------------------- ----- ---------- - ------------------------------- ----- -------- - --- ------------------------- -------------------------- --- - --------------------- ----------------------- - ----- ----- - ------------------- -
文件夹操作
创建文件夹
使用 fs.mkdir
创建文件夹:
import { mkdir } from 'https://deno.land/std@0.168.0/node/fs.ts'; mkdir('../data/newfolder', { recursive: true }, (err) => { if (err) throw err; console.log('文件夹已成功创建'); });
删除文件夹
使用 fs.rmdir
删除空文件夹:
import { rmdir } from 'https://deno.land/std@0.168.0/node/fs.ts'; rmdir('../data/newfolder', (err) => { if (err) throw err; console.log('文件夹已成功删除'); });
如果需要递归删除文件夹及其内容,可以使用 fs.rm
方法:
import { rm } from 'https://deno.land/std@0.168.0/node/fs.ts'; rm('../data/newfolder', { recursive: true, force: true }, (err) => { if (err) throw err; console.log('文件夹已成功删除'); });
文件遍历
遍历文件夹中的所有文件
你可以使用 fs.readdir
方法来遍历文件夹中的所有文件:
import { readdir } from 'https://deno.land/std@0.168.0/node/fs.ts'; readdir('../data', (err, files) => { if (err) throw err; for (const file of files) { console.log(file); } });
递归遍历文件夹
为了递归遍历文件夹中的所有文件和子文件夹,可以使用一个递归函数:
-- -------------------- ---- ------- ------ - -------- ---- - ---- ------------------------------------------- -------- ----------------------- - ------------- ----- ------ -- - -- ----- ----- ---- --- ------ ---- -- ------ - ----- -------- - ---- - --- - ----- -------------- ----- ------ -- - -- ----- ----- ---- -- --------------------- - ---------------------------- - ---- - ---------------------- - --- - --- - -----------------------------
通过以上这些方法,你可以灵活地使用 Bun 来进行各种文件操作,提高开发效率。希望这些示例对你有所帮助!