কোনও ডিরেক্টরিতে কোনও ফোল্ডার রয়েছে কিনা তা পরীক্ষা করে সেগুলি সি # ব্যবহার করে তৈরি করুন


102

ডিরেক্টরিতে C:/নামের একটি ফোল্ডার রয়েছে কিনা তা আমি কীভাবে চেক করতে পারি MP_Uploadএবং এটি উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে ফোল্ডারটি তৈরি করতে পারে?

আমি ভিজ্যুয়াল স্টুডিও 2005 সি # ব্যবহার করছি।

উত্তর:


210

এটির সাহায্য করা উচিত:

using System.IO;
...

string path = @"C:\MP_Upload";
if(!Directory.Exists(path))
{
    Directory.CreateDirectory(path);
}

4
System.IO ব্যবহার করে; শুরুতেও প্রয়োজনীয়
fnc12

170
using System.IO;
...

Directory.CreateDirectory(@"C:\MP_Upload");

ডিরেক্টরি। ক্রিয়েট ডিরেক্টরী আপনি যা চান ঠিক তেমনটি করে: এটি ডিরেক্টরিটি তৈরি করে যদি এটি উপস্থিত না থাকে। প্রথমে সুস্পষ্ট চেক করার দরকার নেই।

পথে সুনির্দিষ্ট যে কোনও এবং সমস্ত ডিরেক্টরি তৈরি করা হয়, যদি না সেগুলি ইতিমধ্যে উপস্থিত থাকে বা পাথের কিছু অংশ অবৈধ না হয়। পাথ প্যারামিটার একটি ফাইল পাথ নয়, একটি ডিরেক্টরি পাথ নির্দিষ্ট করে। ডিরেক্টরি ইতিমধ্যে বিদ্যমান থাকলে, এই পদ্ধতিটি কিছুই করে না।

(এটিরও অর্থ হ'ল প্রয়োজন অনুসারে পথের সমস্ত ডিরেক্টরি তৈরি করা হয়েছে: CreateDirectory(@"C:\a\b\c\d")পর্যাপ্ততা রয়েছে, এমনকি C:\aএখনও উপস্থিত না থাকলেও ))


আপনার ডিরেক্টরিটি বেছে নেওয়ার বিষয়ে আমি সাবধানতার সাথে একটি শব্দ যুক্ত করি, যদিও: সিস্টেম পার্টিশনের মূলের নীচে সরাসরি একটি ফোল্ডার তৈরি C:\করা ভ্রূণ্য। ব্যবহারকারীর একটি ফোল্ডার বেছে নেওয়া %APPDATA%বা %LOCALAPPDATA%তার পরিবর্তে একটি ফোল্ডার তৈরি করা বিবেচনা করুন (তার জন্য পরিবেশগত.গেটফোল্ডারপাথ ব্যবহার করুন)। এনভায়রনমেন্টের এমএসডিএন পৃষ্ঠা.স্পেশালফোল্ডার গণনাতে বিশেষ অপারেটিং সিস্টেম ফোল্ডার এবং তাদের উদ্দেশ্যগুলির একটি তালিকা রয়েছে।


4
আমি নিজেই জানতাম না যে; আমি লজ্জিত বোধ করি; আমি বছরের পর বছর ধরে-যদি-না-থাকলে-তৈরি করে চলেছি।

10
এটি অন্যান্য বেশ কয়েকটি থ্রেডে উঠে এসেছে। যদিও আপনার চেক করার প্রয়োজন নেই, এটি কোডের উদ্দেশ্যটিকে আরও স্পষ্ট করে তোলে, বহিরাগতের জন্য ক্রমবর্ধমান পাঠযোগ্যতা ability সুতরাং চেক রাখা ভাল জিনিস হতে পারে।
ম্যাট জে।

6
@ ম্যাটজে: সেক্ষেত্রে আমি একটি অকেজো ফাংশন কলের চেয়ে সংক্ষিপ্ত মন্তব্য যুক্ত করব। আমি সম্মত হই যে এই আচরণটি সুস্পষ্ট নয়, তবে অন্যদিকে, এটির নামকরণ (আরও যথাযথভাবে) EnsureDirectoryExistsপদ্ধতিটি খুঁজে পাওয়া আরও শক্ত করে তুলেছে।
হেইনজি

4
কিছুটা নোট: Directory.CreateDirectoryফোল্ডারের নামটি বিদ্যমান ফাইলের নামের সাথে মেলে তবে ছুঁড়ে ফেলবে।
রেজা এম

11
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
     System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}

4
হ্যাঁ, আমি অবশ্যই কিছুটা অনুমান করছিলাম। যিনি প্রতিটি ছোট পদ্ধতির নাম মনে রাখার চেষ্টা করছেন ... এবং আমি ভিএস চালিয়ে যেতে অলস ছিলাম ... এর মূল বক্তব্য - আমার কাছে - ধারণাটি দিয়ে জিজ্ঞাসা করা ব্যক্তিকে সহায়তা করা; যদি তারা এই সমস্ত ছোট CreateCreateDirectory

6

এই কাজ করা উচিত

if(!Directory.Exists(@"C:\MP_Upload")) {
    Directory.CreateDirectory(@"C:\MP_Upload");
}

1
using System;
using System.IO;
using System.Windows.Forms;

namespace DirCombination 
{
    public partial class DirCombination : Form
    {
        private const string _Path = @"D:/folder1/foler2/folfer3/folder4/file.txt";
        private string _finalPath = null;
        private string _error = null;

        public DirCombination()
        {
            InitializeComponent();

            if (!FSParse(_Path))
                Console.WriteLine(_error);
            else
                Console.WriteLine(_finalPath);
        }

        private bool FSParse(string path)
        {
            try
            {
                string[] Splited = path.Replace(@"//", @"/").Replace(@"\\", @"/").Replace(@"\", "/").Split(':');
                string NewPath = Splited[0] + ":";
                if (Directory.Exists(NewPath))
                {                    
                    string[] Paths = Splited[1].Substring(1).Split('/');

                    for (int i = 0; i < Paths.Length - 1; i++)
                    {
                        NewPath += "/";
                        if (!string.IsNullOrEmpty(Paths[i]))
                        {
                            NewPath += Paths[i];
                            if (!Directory.Exists(NewPath))
                                Directory.CreateDirectory(NewPath);
                        }
                    }

                    if (!string.IsNullOrEmpty(Paths[Paths.Length - 1]))
                    {
                        NewPath += "/" + Paths[Paths.Length - 1];
                        if (!File.Exists(NewPath))
                            File.Create(NewPath);
                    }
                    _finalPath = NewPath;
                    return true;
                }
                else
                {
                    _error = "Drive is not exists!";
                    return false;
                }
            }
            catch (Exception ex)
            {
                _error = ex.Message;
                return false;
            }
        }
    }
}


0

আপনি এটি চেষ্টা করতে পারেন ..

using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
   Directory.CreateDirectory(path);}

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