Réponses:
using System.IO;
...
Directory.CreateDirectory(@"C:\MP_Upload");
Directory.CreateDirectory fait exactement ce que vous voulez: il crée le répertoire s'il n'existe pas encore. Il n'est pas nécessaire de faire d'abord une vérification explicite.
Tous les répertoires spécifiés dans path sont créés, sauf s'ils existent déjà ou à moins qu'une partie du chemin ne soit invalide. Le paramètre path spécifie un chemin de répertoire, pas un chemin de fichier. Si le répertoire existe déjà, cette méthode ne fait rien.
(Cela signifie également que tous les répertoires le long du chemin sont créés si nécessaire: CreateDirectory(@"C:\a\b\c\d")suffit, même s'il C:\an'existe pas encore.)
Permettez-moi d'ajouter un mot d'avertissement concernant votre choix de répertoire, cependant: La création d'un dossier directement sous la racine de la partition système C:\est mal vue. Envisagez de laisser l'utilisateur choisir un dossier ou de créer un dossier dans %APPDATA%ou à la %LOCALAPPDATA%place (utilisez Environment.GetFolderPath pour cela). La page MSDN de l' énumération Environment.SpecialFolder contient une liste de dossiers de système d'exploitation spéciaux et leurs objectifs.
EnsureDirectoryExistsaurait rendu la méthode plus difficile à trouver.
Directory.CreateDirectorylancera si le nom du dossier correspond à un nom de fichier existant.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Createen 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);
}
Vous pouvez essayer ceci.
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}