2011-04-11 17 views
15

यदि मैं अस्तित्व में नहीं हूं तो मैं एक फ़ोल्डर बनाने की कोशिश कर रहा हूं। मैं विंडोज का उपयोग कर रहा हूं और मुझे अन्य प्लेटफ़ॉर्म में काम करने वाले मेरे कोड पर रूचि नहीं है।यह पता लगाने के लिए कि कोई फ़ोल्डर मौजूद है या फ़ोल्डर कैसे बनाएं?

कोई बात नहीं, मुझे समाधान मिला। मैं सिर्फ एक समावेशी समस्या थी। जवाब है:

#include <io.h> // For access(). 
#include <sys/types.h> // For stat(). 
#include <sys/stat.h> // For stat(). 
#include <iostream> 
#include <string> 
using namespace std; 

string strPath; 
    cout << "Enter directory to check: "; 
    cin >> strPath; 

    if (access(strPath.c_str(), 0) == 0) 
    { 
     struct stat status; 
     stat(strPath.c_str(), &status); 

     if (status.st_mode & S_IFDIR) 
     { 
     cout << "The directory exists." << endl; 
     } 
     else 
     { 
     cout << "The path you entered is a file." << endl; 
     } 
    } 
    else 
    { 
     cout << "Path doesn't exist." << endl; 
    } 
+1

गंभीरता से? आपके प्रारंभिक प्रश्न में कोई कोड खंड नहीं था, और यह कोड प्रश्न को प्रतिबिंबित नहीं करता है। यह एक "मेरे कोड के साथ क्या गलत है [कि मैंने पोस्ट नहीं किया]?" –

+1

आपको संपादन को उत्तर के रूप में पोस्ट करना चाहिए और इसे स्वीकार करना चाहिए। –

+0

यह मुझे इसे एक उत्तर या टिप्पणी के रूप में पोस्ट करने नहीं दिया। – Sara

उत्तर

12

पॉज़िक्स-संगत कॉल mkdir है। It चुपचाप विफल रहता है जब निर्देशिका पहले से मौजूद है।

यदि आप Windows API का उपयोग कर रहे हैं, तो CreateDirectory अधिक उपयुक्त है।

13

फ़ाइल मौजूद है या नहीं, यह जांचने के लिए boost::filesystem::exists का उपयोग करें।

11

boost::filesystem::create_directories बस यही करता है: इसे एक रास्ता दें, और यह उस पथ में सभी गायब निर्देशिकाएं बनाएगा।

+0

'बूस्ट चेक निर्देशिका के लिए Google पर खोज मौजूद है तो सी ++ बनाएं' मुझे पहले खोज परिणाम के रूप में यहां लाया। धन्यवाद। +1। – rayryeng

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