मैं node.js के साथ फ़ाइल कैसे हटा सकता हूं?node.js फ़ाइल हटाएं
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
मैं एक निकालें आदेश नहीं दिख रहा है?
मैं node.js के साथ फ़ाइल कैसे हटा सकता हूं?node.js फ़ाइल हटाएं
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
मैं एक निकालें आदेश नहीं दिख रहा है?
सिंक्रोनस अनलिंक (2) के लिए आप असिंक्रोनस अनलिंक (2) या fs.unlinkSync(path)
के लिए fs.unlink(path, callback)
पर कॉल कर सकते हैं।
जहां path
फ़ाइल-पथ है जिसे आप निकालना चाहते हैं।
उदाहरण के लिए हम c:/book
निर्देशिका से discovery.docx
फ़ाइल को हटाना चाहते हैं। तो मेरा फ़ाइल-पथ c:/book/discovery.docx
है। तो हटाने के उस फ़ाइल हो जाएगा के लिए कोड,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
यहां एक छोटा टुकड़ा की मैं इस उद्देश्य के लिए बनाई गई है,
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.'));
}
});
Async मौजूद है https://nodejs.org/api/fs.html#fs_fs_exists_path_callback – Mirodinho
क्या होगा यदि आप 'fs.exists' से जांचने के बाद और इसे fs.unlink' से हटाए जाने से पहले फ़ाइल को हटा दिया जाए तो क्या होगा? यह हो सकता है। – Searene
आपको यह जांचना नहीं चाहिए कि फ़ाइल अनलिंक करने का प्रयास करने से पहले मौजूद है या नहीं। बस 'अनलिंक' पर कॉल करें, और यदि यह अस्तित्व में नहीं है, तो 'ENOENT' त्रुटि को संभाल लें। अन्यथा आप दौड़ की स्थिति बना सकते हैं। – ZachB
से पहले हटाता है या नहीं यह अस्तित्व में है या नहीं आप फ़ाइल जाँच करना चाहते हैं। तो, fs.stat या fs.statSync (सिंक्रोनस) fs.exists
के बजाय उपयोग करें। क्योंकि नवीनतम node.js documentation, 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.exists() को बहिष्कृत किया गया है, लेकिन fs.existsSync() नहीं है। – Tim
एक कारण है कि इसे बहिष्कृत किया गया है: यदि आप जांचते हैं कि फ़ाइल हटाने से पहले फ़ाइल मौजूद है तो अक्सर आप दौड़ की स्थिति बनाते हैं। इसके बजाय, आपको केवल 'fs.unlink' को कॉल करना चाहिए, और यदि फ़ाइल मौजूद नहीं है, तो आपके पास कॉलबैक में' ENOENT' त्रुटि होगी। अनलिंक करने का प्रयास करने से पहले जांचने की आवश्यकता नहीं है। – ZachB
यहाँ कोड है जहाँ आप फ़ोल्डर से फ़ाइल/छवि हटा सकते हैं।
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
नोड 7 के बाद से कॉलबैक तर्क अब वैकल्पिक नहीं है और इसके परिणामस्वरूप चेतावनी होगी। यदि आप वास्तव में इसकी परवाह नहीं करते हैं तो एक खाली कार्य पास करें। – jlh
मुझे लगता है कि आप यदि फ़ाइल मौजूद है या नहीं, 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`);
}
});
मैं अपने नियंत्रक में पिछले छवि का नाम कैसे प्राप्त कर सकता हूं? – Chaudhary
धन्यवाद Searene, यह मेरे परिदृश्य के लिए काम किया। – user752746
स्वीकृत उत्तर के रूप में, फ़ाइलों को हटाने के लिए fs.unlink
का उपयोग करें।
लेकिन Node.js documentation
एक फ़ाइल के होने की जाँच करने के लिए
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');
});
आप वर्तमान निर्देशिका में एक या अधिक फ़ाइलों को दूर करने के del मॉड्यूल का उपयोग कर सकते हैं का प्रयोग करें। इसके बारे में क्या अच्छा है यह आपको वर्तमान कार्यशील निर्देशिका और ऊपर हटाने के खिलाफ सुरक्षा देता है।
const del = require('del');
del(['<your pathere here>/*']).then((paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
उपयोग NPM module fs-extra, जो आप FS में सब कुछ देता है, के साथ साथ सब कुछ Promisified है। बोनस के रूप में, fs.remove() method उपलब्ध है।
मुझे विश्वास है कि यह POSIX मानक से आता है। लेकिन आपको लगता है कि वे 'हटाएं' उपनाम जोड़ सकते हैं! – Nick
सहमत हैं, लेकिन अधिक पृष्ठभूमि के लिए http://en.wikipedia.org/wiki/Unlink_(Unix) – i3enhamin
@ निक या 'आरएमफ़ाइल' उपनाम – PixnBits