964 Stimmen

Wenn ein Ordner nicht vorhanden ist, erstellen Sie ihn

Ich benutze eine FileUploader Kontrolle in meiner Anwendung. Ich möchte eine Datei in einem bestimmten Ordner speichern. Wenn dieser Ordner nicht existiert, möchte ich ihn zuerst erstellen und dann meine Datei in diesem Ordner speichern. Wenn der Ordner bereits existiert, speichere ich die Datei einfach in ihm.

Wie kann ich das tun?

9voto

UJS Punkte 825

Der folgende Code ist die beste(n) Codezeile(n), die ich verwende, um das Verzeichnis zu erstellen, wenn es nicht vorhanden ist.

System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));

Wenn das Verzeichnis bereits existiert, erstellt diese Methode kein neues Verzeichnis, sondern gibt ein DirectoryInfo-Objekt für das bestehende Verzeichnis zurück. >

3voto

Jogi Punkte 61

Verwenden Sie diesen Code, wenn der Ordner nicht unter dem Bildordner oder anderen Ordnern angezeigt wird

string subPath = HttpContext.Current.Server.MapPath(@"~/Images/RequisitionBarCode/");

bool exists = System.IO.Directory.Exists(subPath);
if(!exists)
    System.IO.Directory.CreateDirectory(subPath);

string path = HttpContext.Current.Server.MapPath(@"~/Images/RequisitionBarCode/" + OrderId + ".png");

0voto

Lemon Kazi Punkte 3246

Verwenden Sie den folgenden Code. Ich verwende diesen Code zum Kopieren von Dateien und Erstellen eines neuen Ordners.

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");
   }
}

-1voto

MiguelSlv Punkte 11195

Eine ausgefallene Methode ist die Erweiterung des FileUpload mit der von Ihnen gewünschten Methode.

Fügen Sie dies hinzu:

public static class FileUploadExtension
{
    public static void SaveAs(this FileUpload, string destination, bool autoCreateDirectory) { 

        if (autoCreateDirectory)
        {
            var destinationDirectory = new DirectoryInfo(Path.GetDirectoryName(destination));

            if (!destinationDirectory.Exists)
                destinationDirectory.Create();
        }

        file.SaveAs(destination);
    }
}

Dann benutzen Sie es:

FileUpload file;
...
file.SaveAs(path,true);

-3voto

uksp Punkte 27
string root = @"C:\Temp";

string subdir = @"C:\Temp\Mahesh";

// If directory does not exist, create it.

if (!Directory.Exists(root))
{

Directory.CreateDirectory(root);

}

CreateDirectory wird auch verwendet, um ein Unterverzeichnis zu erstellen. Sie müssen lediglich den Pfad des Verzeichnisses angeben, in dem dieses Unterverzeichnis erstellt werden soll. Der folgende Codeschnipsel erstellt ein Mahesh-Unterverzeichnis in C:\Temp directory .

// Create sub directory

if (!Directory.Exists(subdir))
{

Directory.CreateDirectory(subdir);

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X