Gesamtes Verzeichnis im C# kopieren

Hallo, Ich programmiere schon einige zeit in "Microsoft Visual C# 2010 Express". Doch jetzt bin ich auf folgendes Problem gestoßen: Ich möchte einen ganzen Ordner (mit Unterordner, Dateien, ... Einfach alles im Ordner!) kopieren, doch mein Code (unten) erstellt immer ein weiteres Unterverzeichnis...

Also zum Beispiel: "C:/User/Myname/AppData/MyFolder/sourceFolder"

soll nach: "C:/User/Myname/AppData/MyFolder/targetFolder"

KOPIERT werden (Dadurch nützt mir die Anweisung System.IO.Directory.Move nichts)

Doch er kopiert das ganze nach: "C:/User/Myname/AppData/MyFolder/targetFolder/sourceFolder"

Was muss ich bei dem Code ändern??

Hier ist der Code:

   private void CopyDirectoryWithIncludedFiles(string dirCopySource, string dirCopyTarget)
    {
        // alle Unterverzeichnisse des aktuellen Verzeichnisses ermitteln
        string[] subDirectories = Directory.GetDirectories(dirCopySource);

        // Zielpfad erzeugen
        StringBuilder newTargetPath = new StringBuilder();
        {
            newTargetPath.Append(dirCopyTarget);
            // Diese Zeile Erstellt einen Ordner im Zielordner: (Kann leider nicht entfernt werden!)
            newTargetPath.Append(dirCopySource.Substring(dirCopySource.LastIndexOf(@"\")));

        }

        // wenn aktueller Ordner nicht existiert -> ersstellen
        if (!Directory.Exists(newTargetPath.ToString()))
            Directory.CreateDirectory(newTargetPath.ToString());


        // Unterverzeichnise durchlaufen und Funktion mit dazu gehörigen Zielpfad erneut aufrufen (Rekursion)
        foreach (string subDirectory in subDirectories)
        {
            string newDirectoryPath = subDirectory;

            // wenn ''/'' an letzter Stelle dann entfernen
            if (newDirectoryPath.LastIndexOf(@"\") == (newDirectoryPath.Length - 1))
                newDirectoryPath = newDirectoryPath.Substring(0, newDirectoryPath.Length - 1);

            // rekursiever Aufruf
            CopyDirectoryWithIncludedFiles(newDirectoryPath, newTargetPath.ToString());
        }


        // alle enthaltenden Dateien des aktuellen Verzeichnisses ermitteln
        string[] fileNames = Directory.GetFiles(dirCopySource);
        foreach (string fileSource in fileNames)
        {
            // Zielpfad + Dateiname
            StringBuilder fileTarget = new StringBuilder();
            {
                fileTarget.Append(newTargetPath);
                fileTarget.Append(fileSource.Substring(fileSource.LastIndexOf(@"\")));
            }

            // Datei kopieren, wenn schon vorhanden überschreiben
            File.Copy(fileSource, fileTarget.ToString(), true);
        }
    }

Bitte helft mir! Brauche das ganz dringend!

PC, Computer, Programm, C Sharp, Visual Studio
Wörterbuch programmiern in C

Hallo. :)

Ich hoffe von euch kann mir jemand meinen Fehler sagen. Ich soll nämlich ein Wörterbuch programmiern und wenn ich ein Wort eingeben, das ich in der Datenbank schon eingespeichter habe, funktioniert alles. Aber, wenn ein Wort kommt, dass noch nicht gespeichert ist, schmeißts mich immer raus. >.> ...eigentlich sollte eine Anfrage kommen, ob man das Wort speichern will...

also hier mal das Programm:

include<stdio.h> include<conio.h> include<string.h> define MAX 100

typedef struct woerterbuch {

char wort[30+1];
char word[30+1];

}Buch;

void main() { int i=0; char search[20]; char suchen[20]; int zahl, gefunden=1, x=0; Buch liste[MAX]={"Hallo", "hello", "Auto", "car", "Sonne", "sun"};

printf("Geben Sie ein, ob Sie von Englisch auf Deutsch (1) oder von Deutsch auf Englisch (2) uebersetzen wollen! ");
scanf("%d", &zahl);

if(zahl==1)
{
    printf("\nGeben Sie ein englisches Wort ein, das Sie uebersetzen wollen! ");
    scanf("%s", search);

    do
    {   
        if(strcmp(search, liste[i].word)==0)
        {
            printf("Deutsch: %s ", liste[i].wort);
            x=1;
            gefunden=0;
        }

        i++;

    }while(x!=1);

    if(gefunden==1)
    {
        printf("\nIhr Wort ist nicht in der Datenbank enthalten!");
        /*printf("\nWenn Sie das Wort in die Datenbank hinzufügen wollen, drücken sie 1.");
        scanf("%d", add);

        if(add==1)
        {
            printf("Das deutsche Wort: ");
            scanf("%s", liste[i+1].wort);

            printf("Das englische Wort: ");
            scanf("%s", liste[i+1].word);
        }*/
    }
}

else
{
    printf("\nGeben Sie ein deutsches Wort ein, das Sie uebersetzen wollen! ");
    scanf("%s", suchen);

    do
    {   
        if(strcmp(suchen, liste[i].wort)==0)
        {
            printf("Englisch: %s ", liste[i].word);
            gefunden++;
            x=1;
        }
    i++;

    }while(x!=1);

    if(gefunden==1)
    {
        printf("\nIhr Wort ist nicht in der Datenbank enthalten!");
    }
}

getch();

}

Vielleicht kann mir hier jemand helfen. ? :)

Danke, schonmal im voraus. :)

P.S: und bitte keine Kommentare zum Stil oder sonst was...bin nicht das größte Genie im Programmiern, das weiß ich selber. :)

programmieren, Visual Studio

Meistgelesene Beiträge zum Thema Visual Studio