Knast Skrevet 27. juli 2009 Del Skrevet 27. juli 2009 Fikk feil på to foreach-looper (de to innerste i codeboxen) uten at jeg kan se hva som er feil.. foreach (string file in System.IO.Directory.GetFiles("c:\\download\\", "*.*", SearchOption.AllDirectories)) { string filnavn = System.IO.Path.GetFileName(file).ToString(); string sti = "c:\tmp\"+filnavn; File.Copy(file, sti); foreach (string fo in Path.GetExtension(sti).ToString()) { FileInfo fi = new FileInfo(_mappe + "feilformater.txt"); StreamReader sr = new StreamReader(fi.OpenRead()); foreach (string read in sr.ReadLine()) { if (fo != "." + read) dirbox.Items.Add(sti); else { dirbox.Items.Add(@"<Element fjernet (" + fo + @"-fil)>"); _feilmelding = _feilmelding + @"Disketten/CD inneholder feil type fil\n"; } } } } Jeg har en mappe c:\download der jeg henter alle filer, kopierer dem til en midlertidig mappe c:\tmp, og legger dem til i en checkedlistbox hvis de ikke har en extension som er angitt i feilfilformat.txt (exe [crlf] bat [crlf] bmp [crlf] osv). Feilmeldingen er i begge tilfeller "cannot convert type 'char' to 'string'" og den blå underliningen i VS08-ex peker på "foreach". Lenke til kommentar
Sikelik Skrevet 27. juli 2009 Del Skrevet 27. juli 2009 (endret) Er ikke helt sikker, men det er nok da i dirbox.items.add()-linjene dine som er problemet if (fo != "." + read) dirbox.Items.Add(sti.tostring()); else { dirbox.Items.Add(@"<Element fjernet (" + fo + @"-fil)>"); .... } Mistenker at en enkel toString() kansje ville hjulpet. Forsøk også å kommentere ut begge dirbox-linjene og se om det fører til samme feilen. Jeg har ikke visual studio tilgjengelig akkurat nå, så får ikke gjort noen test selv. Endret 27. juli 2009 av Sikelik Lenke til kommentar
Degeim Skrevet 27. juli 2009 Del Skrevet 27. juli 2009 Problemet kommer av at Path.GetExtension returnerer en string. Og du looper gjennom hver string i en string; det går ikke. foreach (string fo in Path.GetExtension(sti).ToString()) = foreach (string fo in string) Lenke til kommentar
Knast Skrevet 27. juli 2009 Forfatter Del Skrevet 27. juli 2009 Problemet kommer av at Path.GetExtension returnerer en string. Og du looper gjennom hver string i en string; det går ikke. foreach (string fo in Path.GetExtension(sti).ToString()) = foreach (string fo in string) Takk, det var opplagt når du sa det Men er det noen måte å kjøre foreach-loop sammen med streamreader på eller er while-løkke den eneste gode løsningen? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå