2015-10-28 10 views
7

मैं एक फ़ाइल खोलने की कोशिश कर रहा हूं और मैं जानना चाहता हूं कि यह प्रतिक्रिया करने के लिए मौजूद नहीं है या नहीं। लेकिन त्रुटिगोलांग ओएस में ओपनफाइल वापस नहीं आती है osrrnExist अगर फ़ाइल मौजूद नहीं है

os.OpenFile(fName, os.O_WRONLY, 0600) 

रिटर्न जब फ़ाइल मौजूद नहीं है os.ErrNotExists

os.ErrNotExists -> "file does not exist" 
err.(*os.PathError).Err -> "no such file or directory" 

तुलना में अलग है os.Stat भी एक ही त्रुटि वापस अगर फाइल वहाँ नहीं है। क्या कोई पूर्वनिर्धारित त्रुटि है जिसे मैं हाथ से करने की बजाय तुलना कर सकता हूं?

उत्तर

11

Package os

func IsExist

func IsExist(err error) bool 

IsExist एक बूलियन का संकेत त्रुटि रिपोर्ट के ज्ञात हो कि क्या किसी फ़ाइल या निर्देशिका पहले से मौजूद देता है। यह ErrExist के साथ-साथ कुछ syscall त्रुटियों से संतुष्ट है।

func IsNotExist

func IsNotExist(err error) bool 

IsNotExist एक बूलियन का संकेत त्रुटि रिपोर्ट है कि एक फ़ाइल या निर्देशिका मौजूद नहीं है के लिए जाना जाता रहा है या नहीं देता है। यह ErrNotExist के साथ-साथ कुछ syscall त्रुटियों से संतुष्ट है।

os.IsNotExist फ़ंक्शन का उपयोग करें। उदाहरण के लिए,

package main 

import (
    "fmt" 
    "os" 
) 

func main() { 
    fname := "No File" 
    _, err := os.OpenFile(fname, os.O_WRONLY, 0600) 
    if err != nil { 
     if os.IsNotExist(err) { 
      fmt.Print("File Does Not Exist: ") 
     } 
     fmt.Println(err) 
    } 
} 

आउटपुट:

File Does Not Exist: open No File: No such file or directory 
+0

धन्यवाद! पूरी तरह से याद किया गया है कि दस्तावेज़ों में: पी –

+0

@ AdriàCasajús आप इस उत्तर को स्वीकार किए गए एक के रूप में चिह्नित कर सकते हैं :) – sargas

संबंधित मुद्दे