01. juli 2008 - 10:43Der er
8 kommentarer og 1 løsning
check folder access
hej eksperter. Jeg vil gerne tjekke i en mappe om den bruger som er logget in i windows har adgang til undermapperne på serveren i fx p:\fisk\software\
Hvordan gøres dette nemmeste. Jeg har søgt en del på google og fundet noget, men bare ikke liiige som jeg kan få til at virke.
Om man køre et tjek på mapperne eller "tester" ved at prøve at åbne mappen er lige meget bare det virker, og brugeren ikke lægger mærker til det.
try { new DirectoryInfo("p:\\fisk\\software").GetFiles(); //Kommer du hertil, har du læserettigheder. } catch (IOException ex) { //Kommer du hertil, har du enten ikke rettigheder, eller mappen findes ikke. }
Ja den virker faktisk ok, men ville jo gerne tjekke ALLE de mapper igennem Photoshop, visio osv som ligger i mappen software og så få lavet en liste med hvilke man har adgang til. Fik nok forklaret lidt skidt før :/
Well, det virker sådan set med GetDirectories();, men den viser alle mapperne også dem man ikke kan gå ind i :/ Hvad er så nemmmest nu, at åbne alle mapperne som man nu har i en liste og teste for fejl :D ?
vil det være hurtigere at bruge StringCollection dirsWithAccess = new StringCollection(); og så try { dir.GetFiles(); dirsWithAccess.Add(dir.name); } cath...
Det kan du teste lidt på, men jeg tror ikke det vil give noget særlig performanceforbedring. Grunden til at det giver lidt dårlig performance, er at alle filerne i mapperne bliver hentet ud, selvom dette principielt ikke er nødvendigt.
Jeg synes du skal teste performance på koden. Hvis den er god nok til det du lager, så er det ikke sikkert det kan betale sig at rode mere med det. Hvis det ikke er godt nok, kan det være der findes en eller anden hurtigere metode.
Jeg har set mange spørgsmål der går på dette, og jeg har aldrig set nogen komme med en bedre løsning end bare at bruge try-catch.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.