Node jsで始めるfilesystem3

javascript

今回はよく使うファイル操作のメソッド一覧です。

  • fs.renameSync(オリジナルパス、リネーム後のパス)

    fs.renameはリネームと名前がついていますがファイル移動もこのメソッドを使います。第一引数に元々のファイルパス、第二引数でリネーム後(移動後)のパス。リネーム後と同一のファイルがすでに存在する場合リネーム後のファイルで上書きしてしまうので注意。但し同じフォルダーがあった場合はエラーを返します。

  • fs.mkdirSync(フォルダーパス,オプション)

    fs.mkdirSyncはからのフォルダーを作成します。作成するフォルダーパスを引数に渡してください。階層の深いフォルダーを一度に作成はできません。あるフォルダーの中にフォルダーを作成して、さらにそのフォルダーの中にフォルダーを作成する場合一つずつフォルダーを作成する必要があります。Node ver10からはオプションに{ recursive: true }を渡すことで再起的にフォルダーを作成してくれるようになりますが現状AdobeCEPの場合はcc2020のCEP9でさえNode ver8なので残念ながら使用できないでしょう。

  • fs.rmdirSync(フォルダーパス,オプション)

    rmdirSyncは該当のフォルダーを削除します。但しフォルダーが空でない場合はエラーを返します。したがってフォルダーの中のファイルも含めた再起的な削除はデフォルトだとできません。但しver12からrecursiveオプションが追加されて{ recursive: true }を第二引数に渡すことにより再起的な削除が可能になりました。しかしAdobe CEP9はNode ver8なのでcc2020では使用できません。またver12上ですらrecursiveオプションはexperimental(実験段階)なので使用する場合は注意です。

  • fs.unlinkSync(ファイルパス)

    fs.unlinkSyncは該当のファイルを削除するメソッドです。該当のファイルが存在しない場合はエラーを返します。

  • fs.copyFileSync(コピー元のパス、コピー後のパス、オプション)

    fs.copyFileSyncはファイルをコピーするためのメソッドです。第一引数にコピー前のファイルパス、第二引数にコピー後のファイルパスを渡します。デフォルトだとコピー先のパスに既にファイルが存在する場合はそのまま上書きしてしまうので注意してください。上書きさせたくない場合はコピー先のパスに既にファイルが存在しているか事前に調べるかオプションにfs.constants.COPYFILE_EXCLを渡してください。ファイルが既に存在する場合はエラーを返します。

  • fs.statSync(ファイルパス)

    fs.statSyncメソッドは該当のファイル情報を取得するメソッドです。ファイルが存在するかしないかのチェックも確認できます。情報を確認したいファイルパスを渡すとファイル情報のオブジェクトを返してくれます。詳しくはこちらから確認できますが、重要なプロパティーだけ確認するとsizeがファイルサイズ(バイト単位)、birthtimeがファイルが作成された日時、ctime(change time)がファイルの状態が変更された日時。ドキュメントによるとファイルのアクセス権限が変更されたりリネームされた場合も含めての変更された時刻みたいです。mtime(Modified time)がファイルが修正された日時。微妙にctimeと異なるみたいでこちらはファイルの内容修正された時や書き込まれた時のみに更新されるみたいです。atime(Access Time)はその名の通りアクセスされた時に更新される日時みたいです。その他ファイルの内容を確認するメソッドもオブジェクトに用意されていて例えばisDirectoryメソッドでフォルダーだったらtrue、フォルダーじゃなければfalseを返します。isFileメソッドは一般的なファイルデータかどうか返してくれます。ファイル自体が存在しなければfs.statSyncメソッドはエラーを返すのでエラーチェックを通じてファイルが存在するかどうか確認できます。ちなみにisExistsメソッドは非推奨になったので使用しないでください。

非同期でファイル操作をする場合はそれぞれのメソッドのSyncの部分を削ってコールバック関数を引数に追加すれば非同期になります。

Beer 寄付してサイトを応援する。