[解決済み] 親フォルダが存在しない場合のファイル書き込み方法について教えてください。
2022-09-28 13:18:36
質問
以下のパスにファイルを書き込む必要があります。
fs.writeFile('/folder1/folder2/file.txt', 'content', function () {…});
しかし
'/folder1/folder2'
のパスが存在しない可能性があります。ということで、以下のようなエラーが発生します。
message=ENOENT, open /folder1/folder2/file.txt
そのパスにコンテンツを書き込むにはどうしたらよいでしょうか。
どのように解決するのですか?
Node v10 の時点で、これは fs.mkdir 関数に組み込まれており、これを パス.ディレクトリ名 :
var fs = require('fs');
var getDirName = require('path').dirname;
function writeFile(path, contents, cb) {
fs.mkdir(getDirName(path), { recursive: true}, function (err) {
if (err) return cb(err);
fs.writeFile(path, contents, cb);
});
}
古いバージョンでは mkdirp :
var mkdirp = require('mkdirp');
var fs = require('fs');
var getDirName = require('path').dirname;
function writeFile(path, contents, cb) {
mkdirp(getDirName(path), function (err) {
if (err) return cb(err);
fs.writeFile(path, contents, cb);
});
}
パス全体がすでに存在する場合
mkdirp
は無視されます。それ以外の場合は、見つからないディレクトリをすべて作成します。
このモジュールは、あなたが望むことをします。 https://npmjs.org/package/writefile . このモジュールは "writefile mkdirp" でググって出てきたものです。このモジュールはコールバックを受け取る代わりにプロミスを返すので、最初にプロミスについての入門書を読んでおいてください。実際に物事を複雑にしてしまうかもしれません。
私が与えた関数は、どんな場合でも動作します。
関連
-
[解決済み] AWS lambda function error - Unable to import module 'index': エラー
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
-
[解決済み] Javaでファイルが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Python の open() はファイルが存在しない場合、ファイルを作成しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] ブラウザで動作しているURLで「connect ETIMEDOUT」エラーが発生する原因は何ですか?
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?