Beim erzeugen des zweiten Ordner in einem Ordner. Wo mache ich den Fehler?

Adrianos

Grünschnabel
Hallo Gentelmans & Ladys,

Ich möchte in einem im Laufzeit erzeugten Ordner einer neue Ordner erzeugen. Es klappt zwar aber also es wird in dem Laufzeit erzeugten Ordner einer neue Ordner erzeugt wird. Aber er erzeugt ein Ordner noch ein Ordner (dessen Namen ich nicht eingegeben habe) und in dem Ordner erzeugt er die gewünchte Ordner.

Wo liegt der Fehler? Hängt es damit ab, weil ich es im Laufzeit erzeuge?

Code:
private void button1_Click(object sender, EventArgs e)
        {     


                string activeDir = @"D:\temp";
                string myData = tbProject.Text;

                //Create a new subfolder under the current active folder
                string newPath = System.IO.Path.Combine(activeDir, myData);
                if (!Directory.Exists(newPath))
                {
                    //Create the subfolder
                    System.IO.Directory.CreateDirectory(newPath);
                    
                    //Create a new file name. This example generates a random string.
                    string newFileName = System.IO.Path.GetRandomFileName();

                    //Combine the new file name with the path
                    newPath = System.IO.Path.Combine(newPath, newFileName);
                }else
                {
                    MessageBox.Show("Folder Already Exist");
                }

            string Resultat = tbPCBNumber1.Text + tbPCBNumber2.Text + tbPCBNumber3.Text + tbPCBNumber4.Text;
            MessageBox.Show(Resultat);
            
            //zum erzeugen der 2. Verzeichniss 
            //Create a new subfolder under the current active folder
            //string newPath2 = System.IO.Path.Combine(newPath, Resultat);
            //System.IO.Directory.CreateDirectory(newPath2);
}


MfG

Adrianos
 

Hale

Mitglied
Hallo Adrianos,

dein "Fehler" liegt in folgendem Block:

Code:
//Create a new file name. This example generates a random string.
                    string newFileName = System.IO.Path.GetRandomFileName();
 
                    //Combine the new file name with the path
                    newPath = System.IO.Path.Combine(newPath, newFileName);

Hier erzeugst du einen zufallsPfad, da du deinen newPath mit dem RandomFileName kombinierst.

Code:
string newPath2 = System.IO.Path.Combine(newPath, Resultat);
            System.IO.Directory.CreateDirectory(newPath2);
In dem Abschnitt steht dann nicht mehr dein eigentlicher newPath drin, sondern der soeben neu erzeugte Zufallspfad.

Das lässt sich recht leicht lösen, entweder du nimmst den newFileName raus oder du kombinierst ihn nicht mehr mit dem newPath bzw. machst newPath3 draus oder sowas.

Gruß
Hale
 

Adrianos

Grünschnabel
Hallo Adrianos,

dein "Fehler" liegt in folgendem Block:

Code:
//Create a new file name. This example generates a random string.
                    string newFileName = System.IO.Path.GetRandomFileName();
 
                    //Combine the new file name with the path
                    newPath = System.IO.Path.Combine(newPath, newFileName);

Hier erzeugst du einen zufallsPfad, da du deinen newPath mit dem RandomFileName kombinierst.

Code:
string newPath2 = System.IO.Path.Combine(newPath, Resultat);
            System.IO.Directory.CreateDirectory(newPath2);
In dem Abschnitt steht dann nicht mehr dein eigentlicher newPath drin, sondern der soeben neu erzeugte Zufallspfad.

Das lässt sich recht leicht lösen, entweder du nimmst den newFileName raus oder du kombinierst ihn nicht mehr mit dem newPath bzw. machst newPath3 draus oder sowas.

Gruß
Hale

Ja Danke Hale. Ich hab mal Breakpoints gesetzt und geguckt wo was erzeugt wurde. Das hat mir geholfen. Ich sollte in Zukunft besser so vorgehen als in einem Forum zu Posten :)