nodejs melaksanakan pemilihan folder
Node.js ialah bahasa pengaturcaraan JavaScript bahagian belakang yang popular yang digunakan secara meluas untuk membina aplikasi web, API, alatan baris arahan, dsb. Dalam Node.js, kadangkala anda perlu membenarkan pengguna memilih folder untuk membaca, menulis dan mengubah suai dalam program. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk memilih folder.
1. Gunakan Node.js asli untuk memilih folder
Node.js menyediakan modul fs untuk mengendalikan sistem fail. Dalam modul fs, terdapat kaedah yang dipanggil readdir, yang boleh membaca semua fail dan subdirektori dalam direktori. Berikut ialah contoh kod yang menggunakan Node.js asli untuk memilih folder:
const fs = require('fs'); const path = require('path'); let dir = process.argv[2] || '.'; fs.readdir(dir, (err, files) => { if (err) throw err; console.log('请选择一个文件夹:'); files.forEach(file => { let filePath = path.join(dir, file); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { console.log(`[${file}]`); } else { console.log(file); } }); }); process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { data = data.trim(); let filePath = path.join(dir, data); fs.stat(filePath, (err, stats) => { if (err) throw err; if (stats.isDirectory()) { process.stdin.pause(); console.log(`已选择[${data}]文件夹!`); } else { console.log(`${data}不是一个有效的文件夹!`); } }); }); });
Kod pertama kali menggunakan kaedah fs.readdir untuk membaca folder yang ditentukan pengguna, dan kemudian menggunakan kaedah fs.stat untuk tentukan sama ada setiap fail Bukan folder. Akhir sekali, process.stdin digunakan untuk mendapatkan input pengguna Jika input pengguna ialah folder, ia bermakna pengguna memilih folder.
2. Gunakan modul pihak ketiga untuk memilih folder
Selain menggunakan Node.js asli, anda juga boleh menggunakan modul pihak ketiga untuk memilih folder. Berikut ialah dua modul pihak ketiga biasa untuk memilih folder.
- inquirer
inquirer ialah perpustakaan antara muka pengguna baris arahan interaktif yang berkuasa yang boleh membuat pilihan interaktif pada baris arahan seperti membangunkan borang web. Berikut ialah contoh kod yang menggunakan penyiasat untuk memilih folder:
const inquirer = require('inquirer'); const fs = require('fs'); const path = require('path'); let dirs = fs .readdirSync('.') .filter(file => { return fs.statSync(file).isDirectory(); }) .map(dir => { return { name: `[${dir}]`, value: dir }; }); inquirer .prompt([ { type: 'list', name: 'dir', message: '请选择一个文件夹:', choices: dirs, }, ]) .then(answer => { console.log(`已选择[${answer.dir}]文件夹!`); });
Kod ini menggunakan kaedah fs.readdirSync untuk membaca semua folder dalam direktori semasa dan menggunakan kaedah penapis untuk menapis semua folder. Kemudian setiap folder dikapsulkan ke dalam objek melalui kaedah peta, supaya nama folder boleh dipaparkan dalam senarai pilihan penyiasat. Akhir sekali, gunakan kaedah inquirer.prompt untuk memaparkan senarai pilihan untuk membenarkan pengguna memilih folder dan gunakan answer.dir untuk mendapatkan nama folder yang dipilih oleh pengguna.
- file-tree-select
file-tree-select ialah pemalam pemilih fail yang dibina pada inquirer dan node-file-tree. Ia boleh memaparkan pepohon fail dalam direktori semasa pada baris arahan, dan pengguna boleh memilih folder melalui anak panah atas dan bawah serta bar ruang papan kekunci. Berikut ialah contoh kod yang menggunakan fail-tree-select untuk memilih folder:
const fileTreeSelect = require('file-tree-select'); const path = require('path'); let dir = process.argv[2] || '.'; let absDir = path.resolve(dir); fileTreeSelect(absDir, { hideFiles: true }).then(result => { console.log(`已选择[${result}]文件夹!`); });
Kod pertama kali menggunakan kaedah path.resolve untuk menyelesaikan nama folder yang dimasukkan oleh pengguna ke dalam laluan mutlak. Kemudian gunakan kaedah fileTreeSelect untuk memaparkan pepohon fail dalam direktori semasa, dan pengguna boleh menggunakan operasi papan kekunci untuk memilih folder. Akhir sekali, gunakan kaedah .then untuk mendapatkan laluan folder yang dipilih oleh pengguna.
3. Ringkasan
Memilih folder ialah operasi biasa dalam Node.js. Artikel ini memperkenalkan tiga cara untuk memilih folder menggunakan Node.js asli, inquirer dan file-tree-select. Untuk projek kecil, menggunakan Node.js asli boleh memenuhi keperluan untuk projek besar, menggunakan modul pihak ketiga boleh meningkatkan kecekapan pembangunan dan kualiti kod.
Atas ialah kandungan terperinci nodejs melaksanakan pemilihan folder. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini membincangkan useeffect dalam React, cangkuk untuk menguruskan kesan sampingan seperti pengambilan data dan manipulasi DOM dalam komponen berfungsi. Ia menerangkan penggunaan, kesan sampingan yang biasa, dan pembersihan untuk mencegah masalah seperti kebocoran memori.

Lazy memuatkan kelewatan memuatkan kandungan sehingga diperlukan, meningkatkan prestasi web dan pengalaman pengguna dengan mengurangkan masa beban awal dan beban pelayan.

Artikel ini membincangkan kari dalam JavaScript, teknik yang mengubah fungsi multi-argumen ke dalam urutan fungsi argumen tunggal. Ia meneroka pelaksanaan kari, faedah seperti aplikasi separa, dan kegunaan praktikal, meningkatkan kod baca

Artikel ini menerangkan algoritma perdamaian React, yang dengan cekap mengemas kini DOM dengan membandingkan pokok DOM maya. Ia membincangkan manfaat prestasi, teknik pengoptimuman, dan kesan terhadap pengalaman pengguna. Kira -kira: 159

Fungsi pesanan yang lebih tinggi dalam JavaScript meningkatkan ketabahan kod, kebolehgunaan semula, modulariti, dan prestasi melalui abstraksi, corak umum, dan teknik pengoptimuman.

Artikel membincangkan penyambungan komponen reaksi ke kedai redux menggunakan Connect (), menerangkan MapStateToprops, MapdispatchToprops, dan kesan prestasi.

Artikel ini menerangkan USEContext dalam React, yang memudahkan pengurusan negara dengan mengelakkan penggerudian prop. Ia membincangkan faedah seperti keadaan terpusat dan penambahbaikan prestasi melalui pengurangan semula yang dikurangkan.

Artikel membincangkan menghalang tingkah laku lalai dalam pengendali acara menggunakan kaedah pencegahanDefault (), faedahnya seperti pengalaman pengguna yang dipertingkatkan, dan isu -isu yang berpotensi seperti kebimbangan aksesibiliti.
