[nodejs] ライブラリ「fs」調査結果

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback

ライブラリのリファレンスページを分かりやすくまとめておきたかったので、調査した結果をメモしておきます。

ファイル操作

Syncが付いていないものは非同期処理を行う関数で、それ以外は同期処理を行う。

ファイル名の変更

fs.rename(oldPath, newPath, callback)
fs.renameSync(oldPath, newPath)

ファイルファイルの内容を指定バイト数以降を切り捨てる

fs.ftruncate(fd, len, callback)
fs.ftruncateSync(fd, len)
fs.truncate(path, len, callback)
fs.truncateSync(path, len)

ファイルuid,gidの変更

fs.chown(path, uid, gid, callback)
fs.chownSync(path, uid, gid)
fs.fchown(fd, uid, gid, callback)
fs.fchownSync(fd, uid, gid)
fs.lchown(path, uid, gid, callback)
fs.lchownSync(path, uid, gid)

ファイル権限の変更

fs.chmod(path, mode, callback)
fs.chmodSync(path, mode)
fs.fchmod(fd, mode, callback)
fs.fchmodSync(fd, mode)
fs.lchmod(path, mode, callback)
fs.lchmodSync(path, mode)

対象ファイル・フォルダの情報表示

fs.stat(path, callback)
fs.lstat(path, callback)
fs.fstat(fd, callback)
fs.statSync(path)
fs.lstatSync(path)
fs.fstatSync(fd)

fs.link(srcpath, dstpath, callback)
fs.linkSync(srcpath, dstpath)

シンボリックリンク設定

fs.symlink(destination, path[, type], callback)
fs.symlinkSync(destination, path[, type])

シンボリックリンクのリンク元を取得

fs.readlink(path, callback)
fs.readlinkSync(path)
fs.realpath(path[, cache], callback)
fs.realpathSync(path[, cache])

ファイル削除

fs.unlink(path, callback)
fs.unlinkSync(path)

ファイルとシンボリックリンクしか削除できません。
フォルダ削除は「rmdir」を使ってください。

ディレクトリ操作

ディレクトリ作成

fs.mkdir(path[, mode], callback)
fs.mkdirSync(path[, mode])

※注意点
pathには、複数の深度を登録できません。
複数深度に対応するにはcallbackで対応するといいでしょう。

ディレクトリ削除

fs.rmdir(path, callback)
fs.rmdirSync(path)

※注意点
フォルダにファイルなどが入っている場合は削除できません。
安全性を考慮されてますが、強制削除がないと若干使いづらいですね。

フォルダの内容一覧を取得

fs.readdir(path, callback)
fs.readdirSync(path)

※再帰的一覧の取得はできないので、callbackなどを使って関数を作ってください。
カレントディレクトリから拡張子csvのファイル一覧を取得するスニペット

ファイルオープン(ファイル操作前に実行)

fs.open(path, flags[, mode], callback)
fs.openSync(path, flags[, mode])

ファイルクローズ(ファイル操作後に実行)

fs.close(fd, callback)
fs.closeSync(fd)

fs.utimes(path, atime, mtime, callback)
fs.utimesSync(path, atime, mtime)
fs.futimes(fd, atime, mtime, callback)
fs.futimesSync(fd, atime, mtime)

fs.fsync(fd, callback)
fs.fsyncSync(fd)

ファイル書き込み操作(open,closeと併用)

fs.write(fd, buffer, offset, length[, position], callback)
fs.write(fd, data[, position[, encoding]], callback)
fs.writeSync(fd, buffer, offset, length[, position])
fs.writeSync(fd, data[, position[, encoding]])

fs.read(fd, buffer, offset, length, position, callback)
fs.readSync(fd, buffer, offset, length, position)

ファイルデータの読み取り

fs.readFile(filename[, options], callback)
fs.readFileSync(filename[, options])

optionで文字エンコードを指定しないと

ファイルにデータの書き込み

fs.writeFile(filename, data[, options], callback)
fs.writeFileSync(filename, data[, options])

ファイルにデータを追記

fs.appendFile(filename, data[, options], callback)
fs.appendFileSync(filename, data[, options])

fs.watchFile(filename[, options], listener)
fs.unwatchFile(filename[, listener])
fs.watch(filename[, options][, listener])
Caveats
Availability
Filename Argument

ファイル・フォルダの存在確認

fs.exists(path, callback)
fs.existsSync(path)

ファイルもフォルダもチェックできる。
if文で判定する場合は、非同期ではなくSyncをつけて同期処理で行なってください。

fs.access(path[, mode], callback)
fs.accessSync(path[, mode])
Class: fs.Stats
Stat Time Values

fs.createReadStream(path[, options])
Class: fs.ReadStream
Event: ‘open’
fs.createWriteStream(path[, options])
Class: fs.WriteStream
Event: ‘open’

file.bytesWritten
Class: fs.FSWatcher
watcher.close()
Event: ‘change’
Event: ‘error’

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です