web-dev-qa-db-de.com

Überprüfen Sie, ob ein Ordner in einem Verzeichnis vorhanden ist, und erstellen Sie sie mit C #.

Wie kann ich überprüfen, ob das Verzeichnis C:/ enthält einen Ordner mit dem Namen MP_Upload, und wenn es nicht vorhanden ist, erstellen Sie den Ordner automatisch?

Ich verwende Visual Studio 2005 C #.

92
gymcode

Dies sollte helfen:

using System.IO;
...

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

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

Directory.CreateDirectory macht genau das, was Sie wollen: Es erstellt das Verzeichnis, wenn es noch nicht existiert. Es ist nicht erforderlich, zuerst eine explizite Prüfung durchzuführen.

Alle im Pfad angegebenen Verzeichnisse werden erstellt, es sei denn, sie existieren bereits oder ein Teil des Pfads ist ungültig. Der Parameter path gibt einen Verzeichnispfad an, keinen Dateipfad. Wenn das Verzeichnis bereits vorhanden ist, führt diese Methode nichts aus.

(Dies bedeutet auch, dass alle Verzeichnisse entlang des Pfades bei Bedarf erstellt werden: CreateDirectory(@"C:\a\b\c\d") reicht aus, auch wenn C:\a Noch nicht existiert.)


Lassen Sie mich jedoch einen Hinweis zu Ihrer Wahl des Verzeichnisses hinzufügen: Das Erstellen eines Ordners direkt unter dem Systempartitionsstamm C:\ Ist verpönt. Lassen Sie den Benutzer stattdessen einen Ordner auswählen oder einen Ordner in %APPDATA% Oder %LOCALAPPDATA% Erstellen (verwenden Sie hierfür Environment.GetFolderPath ). Die MSDN-Seite der Enumeration Environment.SpecialFolder enthält eine Liste spezieller Betriebssystemordner und ihrer Zwecke.

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

Das sollte funktionieren

if(!Directory.Exists(@"C:\MP_Upload")) {
    Directory.CreateDirectory(@"C:\MP_Upload");
}
6
kufi
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;
            }
        }
    }
}
2
Azam Rahimjonov
    String path = Server.MapPath("~/MP_Upload/");
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }
1

Sie können dies versuchen ..

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