J'utilise un contrôle FileUploader dans mon application. Je veux enregistrer un fichier dans un dossier spécifié. Maintenant, je veux, si ce dossier n'existe pas, le créer d'abord, puis enregistrer mon fichier dans ce dossier. Si le dossier existe déjà, alors enregistrez simplement le fichier.
Comment puis-je faire ceci?
Comme d’autres l’ont dit, utilisez System.IO.Directory.CreateDirectory
Mais vous n'avez pas besoin de vérifier s'il existe en premier. De la docs
Tous les répertoires spécifiés dans path sont créés, sauf s’ils existent déjà ou si une partie du chemin n’est pas valide. Si le répertoire existe déjà, cette méthode ne crée pas de nouveau répertoire, mais renvoie un objet DirectoryInfo pour le répertoire existant.
Utilisez le code ci-dessous selon http://forums.asp.net/p/1226236/2209871.aspx :
string subPath ="ImagesPath"; // your code goes here
bool exists = System.IO.Directory.Exists(Server.MapPath(subPath));
if(!exists)
System.IO.Directory.CreateDirectory(Server.MapPath(subPath));
Il suffit d'écrire cette ligne:
System.IO.Directory.CreateDirectory("my folder");
Référence: Article sur Directory.CreateDirectory sur MSDN
Bien sûr, vous pouvez également écrire using System.IO;
en haut du fichier source, puis simplement écrire Directory.CreateDirectory("my folder");
à chaque fois que vous souhaitez créer un dossier.
Directory.Exists
Ceci expliquera comment vérifier si un chemin de fichier existe
Directory.CreateDirectory
Ceci expliquera comment essayer et créer le chemin de fichier s'il n'existe pas
Vous pouvez créer le chemin s'il n'existe pas encore avec une méthode comme celle-ci:
using System.IO;
private void CreateIfMissing(string path)
{
bool folderExists = Directory.Exists(Server.MapPath(path));
if (!folderExists)
Directory.CreateDirectory(Server.MapPath(path));
}
Vous pouvez utiliser une clause try/catch et vérifier si elle existe:
try
{
if (!Directory.Exists(path))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
Cette méthode créera un dossier s'il n'existe pas et ne fait rien s'il existe.
Directory.CreateDirectory(path);
using System.IO
if (!Directory.Exists(yourDirectory))
Directory.CreateDirectory(yourDirectory);
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
Le code suivant est la (les) meilleure (s) ligne (s) de code que j’utilise qui créera un répertoire s’il n’est pas présent.
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));
Si le répertoire existe déjà, cette méthode ne crée pas de nouveau répertoire, mais renvoie un objet DirectoryInfo pour le répertoire existant. >
C'était la réponse que je cherchais, mais que je n'ai pas facilement trouvée:
string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder);
// Will create if does not already exist (otherwise will ignore)
string createfolder = "E:/tmp /" + uId;
System.IO.Directory.CreateDirectory (createfolder);
Utilisez le code ci-dessous. J'ai utilisé ce code pour copier un fichier et créer un nouveau dossier.
string fileToCopy = "filelocation\\file_name.txt";
String server = Environment.UserName;
string newLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\file_name.txt";
string folderLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\";
bool exists = System.IO.Directory.Exists(folderLocation);
if (!exists)
{
System.IO.Directory.CreateDirectory(folderLocation);
if (System.IO.File.Exists(fileToCopy))
{
MessageBox.Show("file copied");
System.IO.File.Copy(fileToCopy, newLocation, true);
}
else
{
MessageBox.Show("no such files");
}
}