Cara cepat memulai VUE3.0: Masuk ke
Modul jalur digunakan untuk memproses jalur dan file, dan menyediakan banyak metode.
Salah satu persyaratanadalah menggabungkan jalur dan nama file.
const basePath = '/pengguna/mengapa' const filename = 'abc.txt'
Kemudian seseorang akan menggunakan penyambungan string untuk menyambung.
const filePath = basePath + '/' + nama file console.log(filePath);
Meskipun tidak ada masalah dengan hasil seperti itu, mengingat sistem yang berbeda, sistem Windows dapat menggunakan atau \ atau / sebagai pemisah jalur, sedangkan sistem operasi Unix pada Mac OS dan Linux menggunakan / sebagai simbol pemisah jalur.
Untuk mengatasi masalah di atas, kita dapat menggunakan path.resolve untuk menyambung jalur.
const jalur = memerlukan('jalur') const basePath = '/pengguna/mengapa' nama file const = 'abc.txt' const filePath = path.resolve(basePath, nama file) konsol.log(filePath);
const path = require('path') const filePath = '/Pengguna/haha/abc.txt' console.log(path.dirname(filePath)); console.log(path.nama dasar(filePath)); console.log(path.extname(filePath));
Jika kita ingin menyambung beberapa jalur, namun sistem operasi yang berbeda mungkin menggunakan pembatas yang berbeda, kita dapat menggunakan fungsi path.join.
const jalur = memerlukan('jalur') const basepath = '/Pengguna/haha' nama file const = 'abc.txt' const filePath = path.join(basepath, nama file) konsol.log(filePath);
Jika kita ingin menggabungkan file dan folder, kita dapat menggunakan path.resolve.
const basepath = 'Pengguna/haha' nama file const = 'abc.txt'
Path.resolve dan path.join juga dapat digunakan untuk menyambung jalur, jadi apa perbedaannya?
const basepath = '../Pengguna/haha' const nama file = './abc.txt' const nama lain = './haha.js' const filePath1 = path.join(basepath, nama file, nama lain) konsol.log(filePath1); const filePath2 = path.resolve(basepath, nama file, nama lain) console.log(filePath2);
Kita bisa melihat perbedaannya.
Sebagian besar API dari sistem file nodejsmenyediakan tiga metode operasi:
Operasi file sinkron: kode akan diblokir dan tidak akan terus menjalankan
fungsi panggilan balik asinkron. Operasi file: kode tidak akan diblokir dan fungsi panggilan balik perlu diteruskan ketika hasilnya diperoleh, fungsi panggilan balik mengeksekusi
file operasi Janji asinkron: kode tidak akan diblokir. Memanggil operasi metode melalui fs.promises akan mengembalikan Janji, yang dapat diproses melalui lalu dan menangkap.
metode 1 operasi sinkron: fs.statSync
const fs = require('fs') jalur file const = './abc.txt' info const = fs.statSync(jalur file) console.log('Kode yang perlu dijalankan nanti'); konsol.log(info);
Metode 2 operasi asinkron
fs.stat(jalur file, (err, info) => { jika(salah) { konsol.log(err); kembali } konsol.log(info); console.log(info.isFile()); // Tentukan apakah itu sebuah file console.log(info.isDirectory()); // Tentukan apakah itu sebuah folder}) console.log('Kode yang perlu dieksekusi nanti');
Metode ketiga: Janji
fs.promises.stat(filepath).then(info => { konsol.log(info); }).menangkap(salah => { konsol.log(err); }) console.log('Kode yang akan dieksekusi selanjutnya');Node
menetapkan deskriptor file numerik untuk semua file yang terbuka. Semua operasi sistem file menggunakan deskriptor file ini untuk mengidentifikasi dan melacak setiap file tertentu.
Metode fs.open() digunakan untuk mengalokasikan deskriptor file baru fd. Setelah dialokasikan, deskriptor file dapat digunakan untuk membaca data dari file, menulis data ke file, atau meminta informasi tentang file tersebut.
const fs = memerlukan('fs') fs.open('./abc.txt', (err, fd) => { jika(salah) { konsol.log(err); kembali } // Dapatkan informasi file melalui deskriptor file fs.fstat(fd, (err, info) => { konsol.log(info); }) })
fs.readFile(path[, options], callback): Membaca konten file
fs.writeFile(path[, options], callback): Menulis konten ke
parameter opsi file:
flag: Mode tertulis
pengkodean:penulisan file
pengkodean karakter
fs.writeFile('./abc.txt', content, {flag: "a"}, err => { konsol.log(err); })
Pembacaan file
fs.readFile('./abc.txt', (err, data) => { konsol.log(data); })
Jika pengkodean tidak diisi, maka hasil Buffer (biner) akan dikembalikan.
fs.readFile('./abc.txt', {pengkodean: 'utf-8'}, (err, data) => { konsol.log(data); })
Gunakan fs.mkdir() atau fs.mkdirSync untuk membuat folder baru.
const fs = memerlukan('fs') //Buat folder const dirname = './haha' if(!fs.existsSync(dirname)) { fs.mkdir(namadir, (err) => { konsol.log(err); }) }
fs.readdir
fs.readdir(dirname, (err, files) => { konsol.log(file); })
Dapatkan semua file di folder saat ini, direktorinya seperti yang ditunjukkan pada gambar di bawah.
const fs = memerlukan('fs') const jalur = memerlukan('jalur') const dinama = './haha' fungsi getFiles(nama dir) { fs.readdir(dirname, {withFileTypes: true}, (err, file) => { // konsol.log(file); untuk(biarkan file dari file) { // Tentukan apakah itu folder if(file.isDirectory()) { const filepath = path.resolve(dirname, file.name) getFiles(jalur file) } kalau tidak { console.log(file.nama); } } }) } getFiles(dirname)
Anda dapat menggunakan fs.rename untuk mengganti nama folder.
fs.rename('./haha', './xixi', err => { konsol.log(err); })