2010-02-11 12 views
124

क्यूटी में कोई फ़ोल्डर मौजूद है (और फ़ोल्डर बना रहा है) यह जांच कर रहा है कि वर्तमान निर्देशिका में कोई दिया गया फ़ोल्डर मौजूद है या नहीं, मैं कैसे जांचूं?
यदि यह अस्तित्व में नहीं है, तो मैं एक खाली फ़ोल्डर कैसे बना सकता हूं?क्यूटी, सी ++

QDir().mkdir("MyFolder"); 

उत्तर

175

जांच करने के लिए?

mkdir(...); 
+1

यह उत्तर @ पेट्रूसियो के उत्तर से तुलना कैसे करता है? मैं इसे दस्तावेज़ों से नहीं हटा सकता। –

+0

यह स्थिर क्यों नहीं है? 'QDir :: मौजूद है (" absolutepath ")' और 'QDir :: mkdir (" "absolutepath") ' – yalov

+0

@yalov - क्योंकि यह गैर स्थैतिक 'QDir :: mkdir (" relative_path ") के साथ टकरा जाएगा। संभव नहीं दोनों ओवरलोड हैं। –

-5

क्यों कुछ और का उपयोग करें:

QDir("Folder").exists(); 

"MyFolder" उपयोग नामक एक नया फ़ोल्डर बनाने के लिए: "फ़ोल्डर" नाम की एक निर्देशिका उपयोग मौजूद

+19

पोर्टेबिलिटी (क्यूटी के पूरे बिंदु का हिस्सा) –

103
दोनों के लिए

जाँच लें कि यह मौजूद है और अगर ऐसा नहीं होता है बनाने के लिए, बिचौलियों सहित:

QDir dir("path/to/dir"); 
if (!dir.exists()) { 
    dir.mkpath("."); 
} 
10

आप QDir.mkpath() यह सच लौटाता है यदि पथ पहले से मौजूद है, का उपयोग करते हैं दूसरी ओर QDir.mkdir() पथ पहले से मौजूद है तो झूठी वापसी करता है। तो आपके कार्यक्रम के आधार पर आपको चुनना होगा कि कौन सा फिट बैठता है।

आप और अधिक पर Qt Documentation

0

देख सकते हैं आप किसी रिक्त फ़ोल्डर आप पाश कर सकते हैं की जरूरत है जब तक आप कोई खाली फोल्डर

QString folder= QString ("%1").arg(QDateTime::currentMSecsSinceEpoch()); 
    while(QDir(folder).exists()) 
    { 
     folder= QString ("%1").arg(QDateTime::currentMSecsSinceEpoch()); 
    } 
    QDir().mkdir(folder); 

इस मामले में आप एक नंबर के साथ एक फ़ोल्डर का नाम मिल जाएगा मिलता है।

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