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 #.
Dies sollte helfen:
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 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.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Das sollte funktionieren
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);
}
Sie können dies versuchen ..
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}