मैं stat
विधि here के लिए मैन्युअल पढ़ रहा हूँ और यह कहते हैं:क्यों उपयोग कर रहा है fstat अनुशंसित नहीं
एक फ़ाइल के होने की जाँच करने के लिए fs.stat() का उपयोग fs.open बुला (से पहले), fs.readFile() या fs.writeFile() की अनुशंसा नहीं की जाती है। इसके बजाए, उपयोगकर्ता कोड को फ़ाइल को सीधे खोलना/पढ़ना/लिखना चाहिए और फ़ाइल को उपलब्ध नहीं होने पर त्रुटि को संभालना चाहिए।
यह जांचने के लिए कि फ़ाइल बाद में इसे बिना किसी चिपकाए बिना मौजूद है, fs.access() की अनुशंसा की जाती है।
तो, मैं दो सवाल है:
क्यों का उपयोग कर त्रुटि हैंडलर फ़ाइल होने की जाँच करने के लिए
fs.stat()
से अधिक तरह से पसंद किया जाता है?और चूंकि मैं फ़ाइल अस्तित्व की जांच के लिए
fs.access()
का उपयोग कर सकता हूं,error handler
तंत्र का उपयोग कर रहा है यह सुनिश्चित करने के लिए अभी भी पसंदीदा तरीका है?
मुझे लगता है कि मैं दूसरे प्रश्न का उत्तर मिल गया है:
fs.open बुला() से पहले किसी फ़ाइल की पहुँच के लिए जाँच करने के लिए fs.access() का उपयोग करना, FS। readFile() या fs.writeFile() की अनुशंसा नहीं की जाती है। ऐसा करने से दौड़ की स्थिति शुरू होती है, क्योंकि अन्य प्रक्रियाएं को दो कॉल के बीच फ़ाइल की स्थिति बदल सकती हैं। इसके बजाए, उपयोगकर्ता कोड फ़ाइल को खोल/पढ़/लिखना चाहिए और फ़ाइल पहुंच योग्य नहीं है तो उठाई गई त्रुटि को संभालना चाहिए।
तो शायद fs.open()
ब्लॉक, अन्य प्रक्रियाओं के लिए फ़ाइल fs.stat()
और fs.access()
बस जानकारी के लिए अनुरोध और अन्य प्रक्रियाओं अभी भी/बदल सकते हैं फ़ाइल को नष्ट करते हुए।
जब तक उन दस्तावेज़ों के लेखक ने कहीं और क्यों नहीं बताया है (क्योंकि उन्हें दस्तावेज़ों में इसे समझाने की आवश्यकता महसूस नहीं हुई), सभी लोग अनुमान लगा सकते हैं, जो एसओ पर वास्तव में उपयोगी नहीं है। उदाहरण के लिए, एक अटकलें यह है कि यह कम काम करता है, 'एफएस' के रूप में।स्टेट 'को फ़ाइल के बारे में अधिक जानकारी प्राप्त करनी है। लेकिन ... –
अलग-अलग: आपका प्रश्न सिर्फ * दूसरे * उद्धृत पैराग्राफ के बारे में है, है ना? पहले उद्धृत अनुच्छेद में 'fs.access'' के साथ कुछ लेना देना नहीं है (और * इसकी * अनुशंसा स्पष्ट करने का कारण बनता है)। –
[उपयोगी टिप्पणी] (http://stackoverflow.com/questions/32748530/on-linux-is-access-faster-than-stat#comment53341880_32748530) – robertklep