কিউটি, সি ++ এ কোনও ফোল্ডার উপস্থিত রয়েছে (এবং ফোল্ডার তৈরি করা হচ্ছে) তা পরীক্ষা করা হচ্ছে


153

কিউটিতে, আমি কীভাবে চেক করব যে কোনও প্রদত্ত ফোল্ডার বর্তমান ডিরেক্টরিতে উপস্থিত রয়েছে?
যদি এটির অস্তিত্ব না থাকে তবে আমি কীভাবে খালি ফোল্ডার তৈরি করব?

উত্তর:


225

"ফোল্ডার" নামের একটি ডিরেক্টরি উপস্থিত রয়েছে কিনা তা পরীক্ষা করতে:

QDir("Folder").exists();

"মাইফোল্ডার" নামে একটি নতুন ফোল্ডার তৈরি করতে ব্যবহার করুন:

QDir().mkdir("MyFolder");

1
এই উত্তরটি কীভাবে @ পেট্রুসিওর উত্তরের সাথে তুলনা করে? আমি এটি ডক্স থেকে অনুমান করতে পারি না।
জোনাস জি। ড্র্যাঞ্জ

1
কেন এটি অচল নয়? QDir::exists("absolutepath")এবংQDir::mkdir(""absolutepath")
ইয়ালভ

@ ইয়ালভ - কারণ এটি অ-স্থির সাথে সংঘর্ষে লিপ্ত হবে QDir::mkdir("relative_path")। উভয়ই ওভারলোড থাকা সম্ভব নয়।
টমসজ গ্যান্ডার

5
@ জোনাসজি.ড্রেঞ্জ এই উত্তরটি কোনও জটিল / পথ / কাঠামো / / মধ্যবর্তী / ফোল্ডারগুলির সাথে মধ্যবর্তী ফোল্ডার তৈরি করে না। আমার উত্তর উদ্দেশ্যমূলকভাবে ভাল; এটির কম দামের কারণ এটি এটির দু'বছর পরে পোস্ট করা হয়েছিল।
পেট্রুসিও

152

উভয়ই এটির উপস্থিতি কিনা তা যাচাই করে নিন এবং মধ্যস্থতাকারীগুলি সহ এটি না থাকলে তৈরি করুন:

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

12

আপনি যখন QDir.mkpath () ব্যবহার করেন তখন সত্যটি ফিরে আসে যদি পথটি ইতিমধ্যে উপস্থিত থাকে, অন্যদিকে QDir.mkdir () পথটি ইতিমধ্যে উপস্থিত থাকলে মিথ্যা প্রত্যাবর্তন করে। সুতরাং আপনার প্রোগ্রামের উপর নির্ভর করে আপনার চয়ন করতে হবে কোনটি আরও ভাল ফিট করে।

আপনি কিউটি ডকুমেন্টেশনে আরও দেখতে পারেন


0

আপনার যদি খালি ফোল্ডার দরকার হয় তবে খালি ফোল্ডার না পাওয়া পর্যন্ত আপনি লুপ করতে পারেন

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

এই ক্ষেত্রে আপনি একটি নম্বর সহ একটি ফোল্ডার নাম পাবেন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.