VUE3.0 をすぐに始める方法: ラーニング
パス モジュールはパスとファイルの処理に使用され、多くのメソッドを提供します。
、パスとファイル名を連結することです。
const BasePath = '/user/why' const filename = 'abc.txt'
次に、誰かが文字列のスプライシングを使用して結合します。
const filePath = ベースパス + '/' + ファイル名 console.log(filePath);
このような結果は問題ありませんが、さまざまなシステムを考慮すると、Windows システムではパス区切り文字として または \ または / を使用できますが、Mac OS および Linux の Unix オペレーティング システムでは / が使用されます。パス区切り記号。
上記の問題を解決するには、 path.resolveを使用してパスを結合します。
const path = require('パス') const BasePath = '/user/why' const ファイル名 = 'abc.txt' const filePath = path.resolve(basePath, ファイル名) console.log(ファイルパス);
const path = require('path') const filePath = '/ユーザー/haha/abc.txt' console.log(パス.ディレクトリ名(ファイルパス)); console.log(パス.ベース名(ファイルパス)); console.log(path.extname(filePath));
複数のパスを結合したいが、オペレーティング システムが異なると異なる区切り文字が使用される可能性がある場合は、path.join 関数を使用できます。
const path = require('パス') const Basepath = '/ユーザー/笑' const ファイル名 = 'abc.txt' const filePath = path.join(ベースパス, ファイル名) console.log(ファイルパス);
ファイルとフォルダーを結合したい場合は、path.resolve を使用できます。
const Basepath = 'ユーザー/はは' const ファイル名 = 'abc.txt'
Path.resolve と path.join はパスを結合するためにも使用できますが、それらの違いは何でしょうか?
const Basepath = '../ユーザー/笑' const ファイル名 = './abc.txt' const othername = './haha.js' const filePath1 = path.join(ベースパス, ファイル名, 他の名前) コンソール.log(ファイルパス1); const filePath2 = path.resolve(ベースパス, ファイル名, 他の名前) console.log(filePath2);
違いがわかります。
nodejs ファイル システムのほとんどの API は、次の 3 つの操作方法を提供します。
同期ファイル操作: コードはブロックされ、継続的に実行されません
。 ファイル操作: コードはブロックされず、コールバック関数が必要です。結果が取得されると、コールバック関数は
非同期 Promise 操作ファイルを実行します。コードはブロックされません。fs.promises を介してメソッド操作を呼び出すと、then および catch によって処理できる Promise が返されます。
方法1 同期操作: fs.statSync
const fs = require('fs') const ファイルパス = './abc.txt' const info = fs.statSync(ファイルパス) console.log('後で実行する必要があるコード'); コンソール.ログ(情報);
方法 2 非同期操作
fs.stat(filepath, (err, info) => { if(エラー) { コンソール.ログ(エラー); 戻る } コンソール.ログ(情報); console.log(info.isFile()); // ファイルであるかどうかを判断します console.log(info.isDirectory()) // フォルダであるかどうかを判断します }) console.log('後で実行する必要があるコード');
方法 3: Promise
fs.promises.stat(filepath).then(info => { コンソール.ログ(情報); }).catch(err => { コンソール.ログ(エラー); }) console.log('その後実行されるコード');
ノードは、開いているすべてのファイルに数値ファイル記述子を割り当てます。すべてのファイル システム操作は、これらのファイル記述子を使用して、特定の各ファイルを識別および追跡します。
fs.open() メソッドは、新しいファイル記述子 fd を割り当てるために使用されます。ファイル記述子を割り当てた後は、ファイルからのデータの読み取り、ファイルへのデータの書き込み、またはファイルに関する情報の要求に使用できます。
const fs = require('fs') fs.open('./abc.txt', (err, fd) => { if(エラー) { コンソール.ログ(エラー); 戻る } // ファイル記述子を通じてファイル情報を取得 fs.fstat(fd, (err, info) => { コンソール.ログ(情報); }) })
fs.readFile(path[, options], callback): ファイルの内容を読み取ります
fs.writeFile(path[, options], callback): 内容をファイルに書き込みます
オプションパラメータ:
flag: 書き込みモード
エンコーディング: 文字エンコーディング
ファイルの書き込み
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { コンソール.ログ(エラー); })
ファイルの読み取り
fs.readFile('./abc.txt', (err, data) => { コンソール.ログ(データ); })
エンコーディングが入力されていない場合は、結果のバッファー (バイナリ) が返されます。
fs.readFile('./abc.txt', {エンコーディング: 'utf-8'}, (err, data) => { コンソール.ログ(データ); })
fs.mkdir() または fs.mkdirSync を使用して、新しいフォルダーを作成します。
const fs = require('fs') //フォルダーを作成 const dirname = './haha' if(!fs.existsSync(ディレクトリ名)) { fs.mkdir(ディレクトリ名, (err) => { コンソール.ログ(エラー); }) }
fs.readdir
fs.readdir(dirname, (err, files) => { コンソール.ログ(ファイル); })
フォルダ内のファイルをすべて取得します。このときのディレクトリは下図のようになっています。
const fs = require('fs') const path = require('パス') const dirname = './はは' 関数 getFiles(ディレクトリ名) { fs.readdir(dirname, {withFileTypes: true}, (err, files) => { // コンソール.log(ファイル); for(let file of files) { // フォルダーかどうかを判断します if(file.isDirectory()) { const filepath = path.resolve(dirname, file.name) getFiles(ファイルパス) } それ以外 { console.log(ファイル名); } } }) } getFiles(dirname)
fs.rename を使用してフォルダーの名前を変更できます。
fs.rename('./haha', './xixi', err => { コンソール.ログ(エラー); })