ホームページ >ウェブフロントエンド >jsチュートリアル >ノード内の共通モジュールの簡単な分析: path モジュールと fs モジュール
const basePath = '/user/why' const filename = 'abc.txt'その後、誰かが文字列のスプライシングを使用して接続します。
const filePath = basePath + '/' + filename console.log(filePath);この結果には問題はありませんが、さまざまなシステムを考慮すると、Windows システムでは \ または \\ または / をパス区切り記号として使用できますが、Mac OS および Linux Unix オペレーティング システムでは / をパス区切り記号として使用します。 上記の問題を解決するには、
path.resolve を使用してパスを結合します。
const path = require('path') const basePath = '/user/why' const filename = 'abc.txt' const filePath = path.resolve(basePath, filename) console.log(filePath);
const path = require('path') const filePath = '/User/haha/abc.txt' console.log(path.dirname(filePath)); console.log(path.basename(filePath)); console.log(path.extname(filePath));##パスの結合
const path = require('path') const basepath = '/User/haha' const filename = 'abc.txt' const filePath = path.join(basepath, filename) console.log(filePath);ファイルとフォルダーを結合する
const basepath = 'User/haha' const filename = 'abc.txt'
path.resolve と path.join はパスの結合にも使用できますが、それらの違いは何でしょうか?
const basepath = '../User/haha' const filename = './abc.txt' const othername = './haha.js' const filePath1 = path.join(basepath, filename, othername) console.log(filePath1); const filePath2 = path.resolve(basepath, filename, othername) console.log(filePath2);
違いがわかります。
fs moduleほとんどのファイル システム API は、次の 3 つの操作方法を提供します。
const fs = require('fs') const filepath = './abc.txt' const info = fs.statSync(filepath) console.log('后续需要执行的代码'); console.log(info);
fs.stat(filepath, (err, info) => { if(err) { console.log(err); return } console.log(info); console.log(info.isFile()); // 判断是否是一个文件 console.log(info.isDirectory()); // 判断是否是一个文件夹 }) console.log('后续需要执行的代码');方法 3: Promise
fs.promises.stat(filepath).then(info => { console.log(info); }).catch(err => { console.log(err); }) console.log('后续需要执行的代码');ファイル記述子
fs.open() メソッドは、新しいファイル記述子 fd を割り当てるために使用されます。ファイル記述子を割り当てた後は、ファイルからのデータの読み取り、ファイルへのデータの書き込み、またはファイルに関する情報の要求に使用できます。
const fs = require('fs') fs.open('./abc.txt', (err, fd) => { if(err) { console.log(err); return } // 通过文件描述符去获取文件信息 fs.fstat(fd, (err, info) => { console.log(info); }) })ファイルの読み取りと書き込み fs.readFile(path[, options], callback): ファイルの内容の読み取り
の書き込みfiles
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { console.log(err); })ファイルの読み込み
fs.readFile('./abc.txt', (err, data) => { console.log(data); })エンコーディングが入力されていない場合は、結果のバッファ (バイナリ) が返されます。
fs.readFile('./abc.txt', {encoding: 'utf-8'}, (err, data) => { console.log(data); })フォルダーを作成しますfs.mkdir() または fs.mkdirSync を使用します新しいフォルダーを作成します。
const fs = require('fs') // 创建文件夹 const dirname = './haha' if(!fs.existsSync(dirname)) { fs.mkdir(dirname, (err) => { console.log(err); }) }フォルダの内容を取得
fs.readdir(dirname, (err, files) => { console.log(files); })フォルダ内の全ファイルを取得します。ディレクトリは以下のとおりです。再帰が使用できます。
const fs = require('fs') const path = require('path') const dirname = './haha' function getFiles(dirname) { fs.readdir(dirname, {withFileTypes: true}, (err, files) => { // console.log(files); for(let file of files) { // 判断是否是文件夹 if(file.isDirectory()) { const filepath = path.resolve(dirname, file.name) getFiles(filepath) } else { console.log(file.name); } } }) } getFiles(dirname)
可以使用fs.rename对文件夹进行重命名。
fs.rename('./haha', './xixi', err => { console.log(err); })
更多node相关知识,请访问:nodejs 教程!
以上がノード内の共通モジュールの簡単な分析: path モジュールと fs モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。