[c#] 디렉터리에 폴더가 있는지 확인하고 C #을 사용하여 만듭니다.

디렉토리 C:/에라는 폴더가 있는지 확인 MP_Upload하고 존재하지 않는 경우 자동으로 폴더를 생성하려면 어떻게해야합니까?

Visual Studio 2005 C #을 사용하고 있습니다.



답변

이것은 도움이 될 것입니다 :

using System.IO;
...

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


답변

using System.IO;
...

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

Directory.CreateDirectory 는 원하는대로 정확히 수행합니다. 아직 존재하지 않는 경우 디렉터리를 만듭니다. 먼저 명시적인 확인을 할 필요가 없습니다.

이미 존재하거나 경로의 일부가 유효하지 않은 경우가 아니면 경로에 지정된 모든 디렉토리가 작성됩니다. path 매개 변수는 파일 경로가 아닌 디렉토리 경로를 지정합니다. 디렉토리가 이미있는 경우이 메서드는 아무 작업도 수행하지 않습니다.

(이것은 또한 필요한 경우 경로를 따라 모든 디렉토리 가 생성됨을 의미합니다 . 아직 존재하지 CreateDirectory(@"C:\a\b\c\d")않더라도 충분 C:\a합니다.)


하지만 디렉토리 선택에 대해주의 할 점을 추가하겠습니다. 시스템 파티션 루트 바로 아래에 폴더를 만드는 C:\것은 눈살을 찌푸립니다. 사용자가 폴더를 선택 %APPDATA%하거나 또는 %LOCALAPPDATA%대신 폴더를 생성하도록하십시오 (이 경우 Environment.GetFolderPath 사용 ). Environment.SpecialFolder 열거 형 의 MSDN 페이지 에는 특수 운영 체제 폴더 및 용도 목록이 포함되어 있습니다.


답변

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


답변

이것은 작동합니다

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


답변

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;
            }
        }
    }
}


답변

    String path = Server.MapPath("~/MP_Upload/");
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }


답변

시도해 볼 수 있습니다 ..

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