使用内置模块处理文件
process.cwd()、__dirname
js
// path/to/src/cwd.cjs
// 进程运行目录
console.log('process.cwd():', process.cwd())
// 文件所在目录
console.log('__dirname:', __dirname) // path/to/src
// 文件绝对路径
console.log('__filename:', __filename) // path/to/src/cwd.cjs
path 模块
在 Windows 与其他系统执行结果有差异,可通过 path.win32
、path.posix
指定系统返回结果
shell
__dirname: H:\git\nodejs-demo\files\src
__filename: H:\git\nodejs-demo\files\src\paths.js
path.basename(__filename): paths.js
path.basename(__filename, '.js'): paths
path.basename(__dirname): src
path.basename(__dirname, 'c'): sr // 字符串处理
path.delimiter: ;
path.win32.delimiter: ; // 指定Windows平台
path.posix.delimiter: :
path.sep: \
path.win32.sep: \
path.posix.sep: /
path.dirname(__filename): H:\git\nodejs-demo\files\src
path.dirname(__dirname): H:\git\nodejs-demo\files // 返回输入路径的所在目录
path.extname(__filename): .js // 返回最后.及之后的字符串
path.parse(__filename): {
root: 'H:\\',
dir: 'H:\\git\\nodejs-demo\\files\\src',
base: 'paths.js',
ext: '.js',
name: 'paths'
}
path.format({root: '/', name: 'file', ext: '.js'}): /file.js
path.format({root: '/', base: 'file.js', ext: 'anything, ignored'}): /file.js
path.isAbsolute('/baz/..'): true
path.isAbsolute('C:/foo/..'): true
path.isAbsolute('qux/'): false
path.isAbsolute('.'): false
path.join('/foo', 'bar', 'baz/asdf/', './abc') \foo\bar\baz\asdf\abc // 将输入字符拼接为有效的路径格式
path.join('/foo', 'bar', 'baz/asdf/', './abc', '..') \foo\bar\baz\asdf
path.normalize('/foo/./asdf//////quux/../..') \foo // 将输入字符序列为有效的路径格式
path.relative('/data/test/from', '/data/impl/to') ..\..\impl\to
path.resolve('./', 'a/b') H:\git\nodejs-demo\files\a\b // 类似path.join,返回绝对路径
path.toNamespacedPath('./abc') \\?\H:\git\nodejs-demo\files\abc //仅Windows有效
path.win32.toNamespacedPath('./abc') \\?\H:\git\nodejs-demo\files\abc
path.posix.toNamespacedPath('./abc') ./abc
fs 模块
CURD
Create
创建文件有三种方法
fs.appendFile( filePath, data[, options], callback )
将指定的内容追加到文件中。文件不存在则创建fs.open( filePath, flag[, mode], callback )
按标志打开文件。当标志为a
、a+
、w
、w+
时,文件不存在则创建fs.writeFile( filePath, data[, options] )
替换或创建指定的文件和内容fs.createWriteStream(path[, options])
Update
修改文件有两种方法
fs.appendFile()
fs.writeFile()
Read
读取文件有两种方法
fs.open()
fs.readFile(path[, options], callback)
fs.createReadStream(path[, options])
Delete
删除文件有两种方法
fs.unlink(path, callback)
删除文件或软链接fs.rm(path[, options], callback)
删除文件或目录