Node.jsでフォルダを作成・使用する基本
Node.js でフォルダを作成または既存のフォルダを使用する
フォルダを作成する
新しいフォルダを作成するには、fs.mkdir()
関数を使用します。この関数は、作成するフォルダのパスと、オプションでアクセス権を指定する必要があります。
const fs = require('fs');
// 新しいフォルダを作成する
fs.mkdir('my-new-folder', { recursive: true }, (err) => {
if (err) {
console.error(err);
} else {
console.log('フォルダを作成しました: my-new-folder');
}
});
上記のコードは、my-new-folder
という名前の新しいフォルダを作成します。recursive: true
オプションを指定すると、親フォルダが存在しない場合は自動的に作成されます。
既存のフォルダを使用するには、fs.exists()
関数を使用して、フォルダが存在するかどうかを確認してから、必要な操作を実行します。
const fs = require('fs');
// フォルダが存在するかどうかを確認する
fs.exists('my-folder', (exists) => {
if (exists) {
console.log('フォルダが存在します: my-folder');
// フォルダ内での操作を実行する
} else {
console.log('フォルダが見つかりません: my-folder');
}
});
上記のコードは、my-folder
という名前のフォルダが存在するかどうかを確認します。フォルダが存在する場合は、console.log()
でメッセージを出力し、フォルダ内での操作を実行します。
補足:
- フォルダパスは、絶対パスまたは相対パスを使用できます。
- エラー処理を適切に行うことが重要です。
Node.js でフォルダを作成・使用するサンプルコード
const fs = require('fs');
// フォルダパス
const folderPath = './my-folder';
// フォルダが存在するかどうかを確認
fs.exists(folderPath, (exists) => {
if (exists) {
console.log('フォルダが存在します:', folderPath);
// 既存のフォルダ内にあるファイルを読み込む
fs.readFile(`${folderPath}/myfile.txt`, 'utf8', (err, data) => {
if (err) {
console.error(err);
} else {
console.log('ファイルの内容:', data);
}
});
} else {
// フォルダが存在しない場合は作成する
fs.mkdir(folderPath, { recursive: true }, (err) => {
if (err) {
console.error(err);
} else {
console.log('フォルダを作成しました:', folderPath);
// 作成したフォルダ内に新しいファイルを作成する
fs.writeFile(`${folderPath}/newfile.txt`, 'Hello, world!', (err) => {
if (err) {
console.error(err);
} else {
console.log('ファイルを作成しました:', `${folderPath}/newfile.txt`);
}
});
}
});
}
});
説明:
fs
モジュールをインポートします。- 作成・使用するフォルダのパスを
folderPath
変数に格納します。 fs.exists()
関数を使用して、フォルダが存在するかどうかを確認します。- フォルダが存在する場合:
console.log()
でメッセージを出力します。fs.readFile()
関数を使用して、フォルダ内のファイルを読み込みます。
- フォルダが存在しない場合:
fs.mkdir()
関数を使用して、フォルダを作成します。fs.writeFile()
関数を使用して、新しいファイルをフォルダ内に作成します。
- 上記はあくまで一例です。ご自身のニーズに合わせてコードを変更してください。
Node.js でフォルダを作成・使用するその他の方法
path
モジュールは、ファイルパスの操作に役立つ関数を提供します。このモジュールを使用して、フォルダパスの作成や結合を行うことができます。
const path = require('path');
// フォルダパス
const folderName = 'my-folder';
const folderPath = path.join(__dirname, folderName);
// フォルダが存在するかどうかを確認
fs.exists(folderPath, (exists) => {
// ... (上記と同じ処理)
});
第三者製のライブラリ:
mkdirp
や fs-extra
など、フォルダ操作をより簡単にできる第三者製のライブラリも存在します。
const mkdirp = require('mkdirp');
// フォルダパス
const folderPath = './my-folder';
// フォルダを作成する
mkdirp(folderPath, (err) => {
if (err) {
console.error(err);
} else {
console.log('フォルダを作成しました:', folderPath);
}
});
プロミス:
Node.js 8 以降では、fs
モジュールの多くの関数を非同期的に使用し、プロミスを返すことができます。
const fs = require('fs').promises;
// フォルダパス
const folderPath = './my-folder';
// フォルダを作成する
fs.mkdir(folderPath)
.then(() => {
console.log('フォルダを作成しました:', folderPath);
})
.catch(err => {
console.error(err);
});
- 各方法の利点と欠点について理解することが重要です。
- 詳細については、それぞれのライブラリのドキュメントを参照してください。
これらの方法は、状況に応じて使い分けることで、より効率的にフォルダを作成・使用することができます。
javascript node.js