Avatar billede naxosnaxos Nybegynder
07. december 2003 - 00:25 Der er 17 kommentarer og
2 løsninger

Undgå exception på drev der ikke er tilgængelig

Hey

Er ved at lave en fileexplore i et treeview. Nu er jeg stødt på den irriterende fejl at jeg får en exception når f.eks. der ikke er en disk i A: eller når der ikk er en cd i et cdrom drev. Ved denne exception fremkommer en messagebox, som jeg gerne vil være fri for. men kan man det?
Avatar billede driis Nybegynder
07. december 2003 - 00:28 #1
Lav din egen exception handler og lad være med at vise en messagebox :-)
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 00:29 #2
Det er ikke en messagebox jeg har valgt der skal komme
Avatar billede burningice Nybegynder
07. december 2003 - 00:50 #3
det er vel en "Unhandled Exception"-besked der kommer...

prøv at læs lidt om exceptions og try-catch-finally, da det trods alt er en meget fundemental ting i .Net og opbygningen af en pæn og solid program-arkitektur
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 01:08 #4
jeg har try/catch omkring så jeg ved ikke lige hvordan den kan undgåes.
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 01:15 #5
Hvis den er Unhandled og har try-catch omkring og det du fanger er en Exception, er der en god chance for at det er det forkerte du har Try-Catch omkring. (men det er ikke sikkert)
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 01:21 #6
Når man bruger GetLogocalDrives og bagefter i en foreach GetDirectories opstår fejlen når der f.eks. ikke er en disk i a drevet. Er der virkelig ingen der har lavet dette her på eksperten?
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 01:24 #7
Hvad er fejlen?
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 01:28 #8
at jeg ikke kan undgå den pop op besked med at der ikke er en disk i mit adrev når jeg læser på det. Jeg har ikke selv kontrol over dette
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 01:29 #9
Men hvilken fejl-besked får du fra VS? Første skridt i at løse problemet, må være at kende problemet.
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 01:41 #10
.NET -BroadcastEventWindow 1.0.5000.0.3 app.exe - No Disk

There is no disk in the drive. Please insert a disk to drive A:.
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 02:02 #11
:-(

Det var ikke meget at gå efter...

Du bruger Environment.GetLogicalDrives(); og får a-drevet på den måde?

Kan du ikke prøve at hente lidt data fra a-drevet
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 02:02 #12
Hov for søren, jeg var igang med at skrive beskeden, da jeg kom til at trykke send - jeg ved godt den besked ikke var særligt hjælpsom :-)
Avatar billede burningice Nybegynder
07. december 2003 - 02:05 #13
jeg har lige prøvet at teste lidt, og det ser ud til at virke hvis man laver en

if (Directory.Exists(drev) {

}

først... jeg har godt nok ikke selv noget diskettedrev, men jeg slap for at den borkkede sig over at der ikke var noget i mit cdromdrev
Avatar billede burningice Nybegynder
07. december 2003 - 02:06 #14
string[] drives = Directory.GetLogicalDrives();

            foreach (string drive in drives)
            {
                if (Directory.Exists(drive))
                {
                    string[] directories = Directory.GetDirectories(drive);

                    foreach (string dir in directories)
                    {
                        listBox1.Items.Add(drive +": "+ new DirectoryInfo(dir).Name);
                    }
                }
            }


dette virker fint... udkommenterer jeg tilgendgæld min if-sætning brokker den sig
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 02:11 #15
Det her virker tilfredsstillende for mig, men jeg har slet ikke noget a-drev installeret. Måske det gør en forskel.

try {
  DirectoryInfo di = new DirectoryInfo("A:\\");
  di.GetDirectories();
}
catch (DirectoryNotFoundException dnfe) {
  Console.WriteLine("DirectoryNotFoundException: "+ dnfe.Message);
}
Avatar billede nielsbrinch Nybegynder
07. december 2003 - 02:12 #16
cyberfessors løsning er meget bedre end min
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 09:47 #17
takker for mulighederne, tester dem i aften og skriver så tilbage
Avatar billede naxosnaxos Nybegynder
07. december 2003 - 19:03 #18
Takker for jeres løsninger. Jeg tror jeg havde misforstået brugen af Exists. Hvis Cyberfessor smider et svar deles der point ud ;o)
Avatar billede burningice Nybegynder
07. december 2003 - 20:32 #19
svar :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester