मैं नोड.जेएस वाली फ़ाइल को कैसे हटाऊं?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
मुझे एक हटाए गए आदेश नहीं दिख रहे हैं?
मैं नोड.जेएस वाली फ़ाइल को कैसे हटाऊं?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
मुझे एक हटाए गए आदेश नहीं दिख रहे हैं?
जवाबों:
आप fs.unlink(path, callback)
एसिंक्रोनस अनलिंक (2) या fs.unlinkSync(path)
सिंक्रोनस अनलिंक (2) के लिए कॉल कर सकते हैं । फ़ाइल-पथ
कहाँ path
है जिसे आप निकालना चाहते हैं
उदाहरण के लिए हम discovery.docx
फ़ाइल को हटाना चाहते हैंc:/book
डायरेक्टरी । तो मेरा फाइल-पाथ है c:/book/discovery.docx
। तो उस फाइल को हटाने के लिए कोड होगा,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
अगर आप डिलीट करने से पहले फाइल को चेक करना चाहते हैं कि वह मौजूद है या नहीं। तो, के बजाय fs.stat या fs.statSync ( सिंक्रोनस ) का उपयोग करें fs.exists
। क्योंकि नवीनतम नोड.जेएस प्रलेखन के अनुसार , fs.exists
अब पदावनत कर दिया गया है ।
उदाहरण के लिए:-
fs.stat('./server/upload/my.csv', function (err, stats) {
console.log(stats);//here we got all information of file in stats variable
if (err) {
return console.error(err);
}
fs.unlink('./server/upload/my.csv',function(err){
if(err) return console.log(err);
console.log('file deleted successfully');
});
});
fs.unlink
, और यदि फ़ाइल मौजूद नहीं है, तो आपको ENOENT
कॉलबैक में त्रुटि होगी । अनलिंक करने की कोशिश करने से पहले जांच करने की आवश्यकता नहीं है।
fs.unlink
जब फ़ाइल मौजूद नहीं है तो ऑपरेशन प्रदर्शन को क्यों हटाएं , इसलिए मेरा विचार है कि हटाने से पहले फ़ाइल को चेक करें।
unlink
कॉलबैक में ENOENT त्रुटि कोड की जांच करें । यदि वह त्रुटि हुई, तो फ़ाइल मौजूद नहीं थी। उदाहरण के लिए Searene के उत्तर को देखें।
मुझे नहीं लगता कि आपको जाँच करनी है कि फ़ाइल मौजूद है या नहीं, fs.unlink
यह आपके लिए जाँच करेगा।
fs.unlink('fileToBeRemoved', function(err) {
if(err && err.code == 'ENOENT') {
// file doens't exist
console.info("File doesn't exist, won't remove it.");
} else if (err) {
// other errors, e.g. maybe we don't have enough permission
console.error("Error occurred while trying to remove file");
} else {
console.info(`removed`);
}
});
इस उद्देश्य के लिए मैंने एक छोटा सा स्निपेट बनाया है,
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
fs.exists
और इससे पहले कि आप इसे हटा दें, तो क्या होगा यदि फ़ाइल दूसरों द्वारा हटा दी जाती है fs.unlink
? यह हो सकता है।
unlink
, और यदि यह मौजूद नहीं है, तो ENOENT
त्रुटि को संभालें । अन्यथा आप एक दौड़ की स्थिति बना सकते हैं।
स्वीकृत उत्तर के रूप में, fs.unlink
फ़ाइलों को हटाने के लिए उपयोग करें।
लेकिन Node.js प्रलेखन के अनुसार
fs.stat()
कॉल करने से पहले फ़ाइल के अस्तित्व की जांच करने के लिए उपयोग करनाfs.open()
,fs.readFile()
याfs.writeFile()
अनुशंसित नहीं है। इसके बजाय, उपयोगकर्ता कोड को सीधे फ़ाइल को खोलना / पढ़ना / लिखना चाहिए और फ़ाइल उपलब्ध नहीं होने पर उठाई गई त्रुटि को संभालना चाहिए।यह जाँचने के लिए कि कोई फाइल बिना किसी हेरफेर के मौजूद है या नहीं
fs.access()
।
जाँच करने के लिए फ़ाइलों को हटाया जा सकता है या नहीं, fs.access
इसके बजाय का उपयोग करें
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlink
सीधे उपयोग करेंगे क्योंकि वे जानते हैं कि उनके पास फ़ाइल को हटाने के अधिकार हैं। लेकिन fs.access
एक अच्छा विकल्प है अगर उन्हें हटाने से पहले जांच करने की आवश्यकता है। लेकिन मुझे लगता है कि अगर उन्हें जांचने की जरूरत है कि क्या कोई फाइल बिना किसी हेरफेर के मौजूद है, तो उन्हें स्वाभाविक रूप से उपयोग करना चाहिए fs.stat
, fs.access
मेरी विनम्र राय में एक अलग उद्देश्य है।
यहाँ मेरे कोड के नीचे जो ठीक काम करता है।
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 और नोड 10+ यहां है । मीठा async / प्रतीक्षा तरीका का उपयोग कर संस्करण के नीचे ।
अब न तो fs.unlink
प्रोमिस में लपेटने की जरूरत है और न ही अतिरिक्त पैकेज (जैसे fs-extra
) का उपयोग करने की ।
बस देशी fs वादा एपीआई का उपयोग करें ।
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
यहाँ fsPromises.unlink
Node डॉक्स से युक्ति है।
कृपया यह भी ध्यान रखें कि fs.promises API को Node 10.xx में प्रयोगात्मक के रूप में चिह्नित किया गया है (लेकिन पूरी तरह से ठीक काम करता है, हालांकि), और अब से प्रयोगात्मक नहीं है 11.14.0
।
आप वर्तमान निर्देशिका में एक या अधिक फ़ाइलों को हटाने के लिए डेल मॉड्यूल का उपयोग कर सकते हैं । इसके बारे में क्या अच्छा है जो आपको वर्तमान कार्यशील निर्देशिका और इसके बाद के संस्करण को हटाने से बचाता है।
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
आप fs.unlink (पथ, कॉलबैक) फ़ंक्शन का उपयोग कर सकते हैं । यहाँ "त्रुटि-वापस" पैटर्न के साथ फ़ंक्शन आवरण का एक उदाहरण है:
// Dependencies.
const fs = require('fs');
// Delete a file.
const deleteFile = (filePath, callback) => {
// Unlink the file.
fs.unlink(filePath, (error) => {
if (!error) {
callback(false);
} else {
callback('Error deleting the file');
}
})
};
फ़ाइल नाम के लिए regexp से मेल खाने वाली निर्देशिका से फ़ाइलें निकालें। केवल fs.unlink का उपयोग किया जाता है - एक निर्देशिका से सभी फ़ाइलों को प्राप्त करने के लिए फ़ाइल, fs.readdir को हटाने के लिए
var fs = require('fs');
const path = '/path_to_files/filename.anyextension';
const removeFile = (fileName) => {
fs.unlink(`${path}${fileName}`, function(error) {
if (error) {
throw error;
}
console.log('Deleted filename', fileName);
})
}
const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./
fs.readdir(path, function(err, items) {
for (var i=0; i<items.length; i++) {
console.log(items[i], ' ', reg.test(items[i]))
if (reg.test(items[i])) {
console.log(items[i])
removeFile(items[i])
}
}
});
fs-extra
एक हटाने विधि प्रदान करता है:
const fs = require('fs-extra')
fs.remove('/tmp/myfile')
.then(() => {
console.log('success!')
})
.catch(err => {
console.error(err)
})
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
NPM मॉड्यूल fs-extra का प्रयोग करें , जो आपको fs में सब कुछ देता है, साथ ही सब कुछ प्रॉमिसिफाइड है। एक बोनस के रूप में, एक fs.remove () विधि उपलब्ध है।
यहां वह कोड जहां आप फ़ाइल / छवि को फ़ोल्डर से हटा सकते हैं।
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
delete
उपनाम जोड़ सकते हैं !