Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8833

nodejsのfsモジュールの使い方

$
0
0

fsモジュールの使い方をまとめました。

前提条件

  • npmがインストールされていること

同期と非同期

同期処理と非同期処理の2つのファイル処理が出来ます。
Syncと付けると同期処理で、付けないと非同期で処理されます。

同期非同期
statSyncstat
readFileSyncreadFile
copyFileSynccopyFile
unlinkSyncunlink
  • 同期は処理を完了するまで後続の処理を止める
  • 非同期は処理の完了を待たずに後続の処理を行う

設定

mkdirコマンドとtouchコマンドでファイルを作成します。

$ mkdir dir&&touch test.js dir/test.txt
test.js
constfs=require('fs')try{fs.statSync('dir/test.txt')console.log('同期処理')}catch(err){console.log(err)}fs.stat('dir/test.txt',(err)=>{if(err)throwerrconsole.log('非同期処理')})console.log('後続の処理')

実行

nodeコマンドを実行します。

$ node test

出力結果

同期処理
後続の処理
非同期処理

使い方

ファイルの存在確認

ファイルが存在していればオブジェクトを取得出来ます。
isDirectoryメソッドでディレクトリかどうかも確認が出来ます。

constfs=require('fs')try{constdir=fs.statSync('dir')constfile=fs.statSync('dir/test.txt')console.log(dir.isDirectory())console.log(file.isDirectory())}catch(err){console.log(err)}

実行結果

true
false

ファイル一覧を取得

constfs=require('fs')try{console.log(fs.readdirSync('dir'))}catch(err){console.log(err)}

実行結果

[ 'test.txt' ]

ファイルの読み込み

constfs=require('fs')try{console.log(fs.readFileSync('dir/test.txt','utf8'))}catch(err){console.log(err)}
dir/test.txt
Hello world!

実行結果

Hello world!

ファイルの書き込み

ファイルが存在しなければ新規作成して、存在する場合は上書きします。

constfs=require('fs')try{fs.writeFileSync('dir/test2.txt','Hello world!!','utf8')}catch(err){console.log(err)}

実行結果

dir/test2.txt
Hello world!!

ファイルの追記

constfs=require('fs')try{fs.appendFileSync('dir/test.txt','Hello overwrite!','utf8')}catch(err){console.log(err)}
dir/test.txt
Hello world!!

実行結果

dir/test.txt
Hello world!!
Hello overwrite!

ファイルの複製

constfs=require('fs')try{fs.copyFileSync('dir/test.txt','dir/test2.txt')}catch(err){console.log(err)}

ファイルの削除

constfs=require('fs')try{fs.unlinkSync('dir/test.txt')}catch(err){console.log(err)}

参考文献

この記事は以下の情報を参考にして執筆しました。


Viewing all articles
Browse latest Browse all 8833

Trending Articles