मेरी समस्या यह है कि मैं यह सुनिश्चित नहीं कर सकता कि फ़ाइल को सफलतापूर्वक लिखा गया है और फ़ाइल बंद कर दी गई है। निम्नलिखित मामले पर विचार करें:Node.js फ़ाइल को फ़्लश करने के लिए कैसे लिखें ठीक है?
var fs = require('fs');
var outs = fs.createWriteStream('/tmp/file.txt');
var ins = <some input stream>
...
ins.on('data', function(chunk) { out.write(chunk); });
...
ins.on('end', function() {
outs.end();
outs.destroySoon();
fs.stat('/tmp/file.txt', function(err, info) {
// PROBLEM: Here info.size will not match the actual number of bytes.
// However if I wait for a few seconds and then call fs.stat the file has been flushed.
});
});
तो, मैं इसे कैसे एक्सेस या अन्यथा सुनिश्चित करता हूं कि फ़ाइल को एक्सेस करने से पहले ठीक से फ़्लश किया गया है? मुझे यह सुनिश्चित करने की ज़रूरत है कि फ़ाइल वहां है और पूर्ण है, क्योंकि मेरे कोड को फ़ाइल को पढ़ने और संसाधित करने के लिए बाहरी प्रक्रिया को उत्पन्न करना है।
धन्यवाद, आउटस्ट्रीम 'करीबी' घटना सुनना चाल चल रहा है। यह नहीं पता था कि नष्ट करने के लिएूनून फाइलों के लिए अनावश्यक था। –
ग्रेट। मैं खुशी से मदद कर सकता है। –
यह वास्तव में हमारे लिए काम नहीं कर रहा है। हमारे पास अभी भी कुछ मामले हैं (SmartOS/Mac और Windows पर जहां फ़ाइल सामग्री को फ़्लश करने से पहले बंद किया जाता है) – mgoetzke