Toon posts:

[C#] Probleempje met directory

Pagina: 1
Acties:
  • 133 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met een directorystructuur, maar bij het openen van bepaalde directory's geeft ie de volgende fout:

---
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: The path is not of a legal form.
---

Nou heb ik de directory's waar 't dan om gaat eens bekeken, en het zijn allemaal read only directory's, maar het zou ook nog kunnen dat het system directory's zijn.

Ik open een directory doormiddel van Directory.GetDirectories(path) of Directory.GetFiles(path) maar bij bepaalde directory's werkt dat dus niet.

Heeft iemand een idee hoe ik dit op kan lossen?

Bedankt,
Reinder.

[edit: ik wil die directory's dus wel kunnen openen, kortom, een try/catch eromheen is voor mij geen optie]

[ Voor 88% gewijzigd door Verwijderd op 09-08-2005 01:24 ]


  • Zr40
  • Registratie: Juli 2000
  • Niet online

Zr40

Moderator General Chat

heeft native IPv6

De Exception geeft zelf al aan: "The path in not of a legal form". Dit betekent dat er ongeldige tekens in je path voorkomen. Controleer deze eens :)

[ Voor 31% gewijzigd door Zr40 op 09-08-2005 07:51 ]


  • staefke
  • Registratie: December 2003
  • Laatst online: 18-02 08:01
of zet ff een @ voor je string;
grote kans nl. dat je slashes gebruikt, en in combinatie met andere characters worden deze geinterpreteerd als speciale characters ("c:\new folder" bevat bijvoorbeeld een end of line).

duh ?


Verwijderd

Topicstarter
Dat van die ongeldige tekens zou wel 's kunnen kloppen, maar ik ben nog niet zolang bezig met C#, dus... is er toevallig een snelle manier om die eruit te halen?

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 13:09
Doe is een messagebox met daarin het path. Kan je gelijk zien waar die (eventueel) niet klopt. Als je dit path mbv .NET functies verkrijgt, kan er eigenlijk niet zoveel mis mee zijn. Als je 'm zelf hebt samengesteld, moet je de slash escapen door er een extra slash voor te zetten.

Met een slash wordt namelijk een bepaalde waarde aan het daarop volgende karakter gegeven. \n is (zoals staefke zegt) een newline. \t is een tab. En ga zo maar door. Om dit op te heffen moet je \\ in je string zetten wanneer je er eentje bedoeld. Je kan ook vooraan je string een @ zetten, hiermee worden ook alle slashes genegeerd.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Topicstarter
Nou, je hebt gelijk, ik genereer 'm zelf. Ik zet de directory's namelijk in een treeview, maar ik wil daar alleen de naam van de directory die ik heb toegevoegd aan mijn app weergeven.

Bijvoorbeeld ik voeg "C:\Reinder\Dit\Is\Een\Directory\Die\Ik\Gebruik\In\Mijn\Programma" toe, dan wil ik alleen "Programma" in die treeview, maar vervolgens klopt mijn code om daar bij het ophalen van de bestanden en subdirectory's toch een volledig path van te maken niet.

Ik stoei wel even verder, toch bedankt voor de hulp iedereen!

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 13:09
Je kunt iets met TreeNode.GetFullPath oid doen, mits je de seperator op "\" ingesteld laat staan (er ook vanuit gaande dat Reinder, Dit, Is, Een, Directory, ... allemaal parents zijn van Programma). Je moet dan misschien alleen zelf nog "C:\\" ervoor toevoegen.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Topicstarter
riezebosch schreef op dinsdag 09 augustus 2005 @ 15:03:
Je kunt iets met TreeNode.GetFullPath oid doen, mits je de seperator op "\" ingesteld laat staan (er ook vanuit gaande dat Reinder, Dit, Is, Een, Directory, ... allemaal parents zijn van Programma). Je moet dan misschien alleen zelf nog "C:\\" ervoor toevoegen.
Niet dus ;-) Reinder, Dit, Is, Een, Directory, ... enz. zijn geen parents van Programma, ik voeg namelijk alleen de dir "Programma" toe aan de treeview. Dus vandaar. Maar ik kom er hopelijk wel uit. Ik laat 't nog wel ff weten of 't gelukt is.

Verwijderd

Topicstarter
Het is gelukt hoor :)

Bedankt iedereen!
Pagina: 1