Node.js文件操作详解:读写、移动与目录操作

版权申诉
0 下载量 32 浏览量 更新于2024-07-06 收藏 17KB DOCX 举报
"从零学习Node.js之文件操作(三)" 在Node.js中,文件操作是核心功能之一,尤其对于开发工作来说至关重要。本资源详细介绍了如何使用Node.js进行文件和目录的操作,通过实例帮助初学者理解相关API的用法。 一、文件操作 1.1 读取文件 在Node.js中,读取文本文件,如`.txt`, `.js`, `.json`等,可以使用`fs.readFile`方法。例如: ```javascript var fs = require('fs'); fs.readFile('./data.txt', 'utf-8', function(err, data) { if (err) throw err; console.log(data); }); ``` 这段代码会读取名为`data.txt`的文件,并以`utf-8`编码解析其内容。 1.2 写入文件 写入文件同样简单,只需调用`fs.writeFile`或`fs.appendFile`。例如,要将字符串写入文件: ```javascript fs.writeFile('./output.txt', 'Hello, World!', function(err) { if (err) throw err; console.log('文件已写入成功'); }); ``` 1.3 创建或重命名文件 使用`fs.rename`方法可以创建新文件或重命名现有文件。它将`oldname`文件移动到`newname`路径下,如果`oldname`和`newname`相同,则执行重命名操作。 二、目录操作 2.1 读取目录中的文件和子目录 使用`fs.readdir`方法可以获取指定目录中的文件和子目录列表。例如: ```javascript fs.readdir('./myDir', function(err, files) { if (err) throw err; console.log(files); }); ``` 这将列出`myDir`目录下的所有文件和子目录名称。 2.2 删除目录 要删除空目录,可以使用`fs.rmdir`,对于非空目录,可以先递归删除其中的文件,再删除目录本身。如果需要删除整个目录及其内容,可以使用`fs.rmSync`(Node.js v14+)或第三方库如`rimraf`。 2.3 获取文件或目录信息 `fs.stat`用于获取文件或目录的详细信息,包括创建时间、修改时间、文件大小等。例如: ```javascript fs.stat('./test.js', function(err, stats) { if (err) { console.log('路径错误'); throw err; } console.log(stats); console.log('isFile: ' + stats.isFile()); // 是否为文件 console.log('isDirectory: ' + stats.isDirectory()); // 是否为目录 }); ``` 三、综合运用 3.1 遍历目录中的所有文件 为了获取目录中所有文件的名称,可以使用递归方法。当遇到文件时,将其添加到结果数组中;如果遇到目录,则继续遍历该目录的子文件。以下是一个简单的示例: ```javascript function readAllFiles(dir, result = []) { fs.readdir(dir, function(err, files) { if (err) throw err; files.forEach(function(file) { const filePath = path.join(dir, file); fs.stat(filePath, function(err, stats) { if (err) throw err; if (stats.isDirectory()) { readAllFiles(filePath, result); } else { result.push(filePath); } }); }); }); return result; } readAllFiles('./myDir').then(console.log); ``` 此函数会递归地读取`myDir`目录及其所有子目录,并返回一个包含所有文件路径的数组。 Node.js提供了丰富的文件和目录操作API,开发者可以通过这些API轻松地处理文件系统任务。通过理解和实践上述示例,开发者可以掌握基本的文件操作技巧,从而在实际项目中更加得心应手。