2010-12-20 13 views
47

देखने के लिए अगर यह प्रयोग करने से पहले एक फ़ाइल मौजूद है, हम उपयोग कर सकते हैं:पर्ल में कोई निर्देशिका मौजूद है या नहीं, यह देखने के लिए कैसे?

if (-e "filename.cgi") 
{ 
#proceed with your code 
} 

लेकिन यह कैसे indentify करने के लिए एक निर्देशिका मौजूद है या नहीं?

+1

आपके पर्ल प्रश्नों में से लगभग आधे बहुत ही बुनियादी विषयों से निपटते हैं। यदि आप कुछ किताबें पढ़ते हैं तो आप स्वयं को कुछ समय बचा सकते हैं। [Perl 语言 入门 ④] (http://oreilly.com.cn/book.php?bn=978-7-5641-0636-2), [सीखना पर्ल ⑤] (http://oreilly.com/catalog/ 9780596520113 /) – daxim

+29

मुझे लगता है कि यह इन प्रश्नों को पूछने के लिए उन्हें बहुत ही कम समय ले गया, और वे बहुत उपयोगी खोज परिणाम हैं। एक सीखने की शैली मत बनो मत। –

+1

@Adam मुझे लगता है कि डैक्सिम का मुद्दा यह है कि ओपी के पर्ल प्रश्न (इस सहित) सभी बहुत ही बुनियादी हैं और इसलिए पर्ल का एक अवलोकन पढ़ना कुछ समय बचा सकता है, जिसमें कई विशिष्ट प्रश्न पूछ सकते हैं जिनके उत्तरों आसानी से अन्य तरीकों से मिलते हैं – GreenGiant

उत्तर

85

उपयोग -d (full list of file tests)

if (-d "cgi-bin") { 
    # directory called cgi-bin exists 
} 
elsif (-e "cgi-bin") { 
    # cgi-bin exists but is not a directory 
} 
else { 
    # nothing called cgi-bin exists 
} 

एक नोट के रूप में, -e फ़ाइलों और निर्देशिकाओं बीच भेद नहीं करता। यह जांचने के लिए कि क्या कुछ मौजूद है और एक सादा फ़ाइल है, -f का उपयोग करें।

+3

यदि आप -d का उपयोग कर रहे हैं, तो आपको इसकी आवश्यकता नहीं है (-d गैर-मौजूद निर्देशिकाओं के लिए झूठी रिटर्न)। –

+9

@ पीटर - तकनीकी रूप से सही होने पर, उत्पादन कोड में आमतौर पर-डी के बाद बेहतर होता है, इसलिए त्रुटि संदेशों को और अधिक लक्षित किया जा सकता है। उत्पादन में समस्या समाधान के रूप में "अस्तित्व में नहीं है" और "एक गैर-निर्देशिका के रूप में मौजूद" के बीच एक अंतर है। – DVK

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

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