Toon posts:

c# CreateDirectory

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag een directory aanmaken met een programma wat ik aan het schrijven ben.
Verder is alles nieuw voor me in c# dus ben veelal aan het testen en proberen.
De onderstaande code heb ik op internet gevonden over het aanmaken van een directory.
Ook met try en catch zodat je eventueel de fout kan zien.

Ik krijg echter geen fout maar gewoon het resultaat false van de functie wanneer deze in een messagebox.show doe.

mijn code:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string MyFolderPath = @"K:\CAM1_Paco001\";
            string MyFolderRoot = @"e:\Camera\";
            string Name = @"test\";

            //  check for directory exists
            if (!Directory.Exists(MyFolderRoot + Name))
            {
                try
                {
                    Directory.CreateDirectory(MyFolderPath + Name + "\\");
                }
                catch (Exception error)
                {
                    MessageBox.Show(error.ToString());
                }
            }


Wat doe ik verkeerd voor het aanmaken van een directory? zelf denk ik eigenlijk dat het ergens misschien wel met rechten te maken heeft, maar hoe kan je dit dan oplossen? Heb er al wel opgezocht met google maar weinig nuttige informatie tegengekomen.

Heb wel geprobeerd met de functie Directory.GetAccessControl maar zonder gewenst resultaat...

Acties:
  • 0 Henk 'm!

Verwijderd

C#:
1
2
3
string MyFolderPath = @"K:\CAM1_Paco001\";
string MyFolderRoot = @"e:\Camera\";
string Name = @"test\"; 

Moet zijn
C#:
1
2
3
string MyFolderPath = @"K:\\CAM1_Paco001\\";
string MyFolderRoot = @"e:\\Camera\\";
string Name = @"test\\"; 

Je moet \ altijd escapen in een string (dus er \\ van maken). Tenzij je dit bewust doet (zoals bijvoorbeeld \n, voor een newline).

Acties:
  • 0 Henk 'm!

  • DRaakje
  • Registratie: Februari 2000
  • Niet online
dubbele slash op het eind?
code:
1
2
3
4
5
6
7
(MyFolderPath + Name + "\\"); 

string MyFolderPath = @"K:\CAM1_Paco001\";
string MyFolderRoot = @"e:\Camera\";
string Name = @"test\"; 

"e:\Camera\" +  "test\" + "\\" = > "e:\Camera\test\\"?


Volgens mij is de @ juist om aan te geven dat \ niet escaped hoeft te worden.

[ Voor 24% gewijzigd door DRaakje op 27-02-2009 16:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja idd met die @ is het niet nodig om te slashen, dat had ik op internet ook gevonden.

Ik heb inmiddels het probleem gevonden en dat was gewoon verkeerd gebruik van variabelen. De folder werd op een ander plek aangemaakt.

Hoe dom kun je zijn... kwam er zelf pas achter na 1 uur zoeken..... :(:(

Acties:
  • 0 Henk 'm!

Verwijderd

nvm spuit 12

[ Voor 97% gewijzigd door Verwijderd op 27-02-2009 22:58 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Dit had je met wat simpel debuggen zo gevonden, als je gewoon een watch op je variabele had gezet!

Verder kun je beter http://msdn.microsoft.com...stem.io.path.combine.aspx gebruiken om paden aan elkaar te plakken

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1