Antworten:
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 Überprüfung durchzuführen.
Alle im Pfad angegebenen Verzeichnisse werden erstellt, es sei denn, sie sind bereits vorhanden 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 Pfads bei Bedarf erstellt werden. Dies CreateDirectory(@"C:\a\b\c\d")reicht aus, auch wenn es C:\anoch nicht vorhanden ist.)
Lassen Sie mich jedoch ein Wort zur Vorsicht bei der Auswahl Ihres Verzeichnisses hinzufügen: Das Erstellen eines Ordners direkt unter dem Stamm der Systempartition C:\ist verpönt. Lassen Sie den Benutzer einen Ordner auswählen %APPDATA%oder %LOCALAPPDATA%stattdessen einen Ordner erstellen (verwenden Sie dazu Environment.GetFolderPath ). Die MSDN-Seite der Environment.SpecialFolder- Enumeration enthält eine Liste spezieller Betriebssystemordner und deren Zwecke.
EnsureDirectoryExistshätte eine (treffendere) Benennung die Methode schwieriger zu finden gemacht.
Directory.CreateDirectoryWird ausgelöst, wenn der Ordnername mit einem vorhandenen Dateinamen übereinstimmt.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Createin CreateDirectory:)
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);
}
Sie können dies versuchen ..
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}