Arath Skrevet 8. februar 2008 Skrevet 8. februar 2008 Hei, Jeg prøver å lese filstørrelsen på en katalog vhja c#. Bruker DirectoryInfo[] subDirs = root.GetDirectories("*", SearchOption.AllDirectories); for å hente alle underkataloger og leser størrelse fra hver enkelt fil under dette. Det funker i og for seg greit, men så har jeg ett problem med at filepath + fil i enkelte tilfeller overstiger 260 tegn, tydeligvis er en begrensning på Windows shell/API. Noen som har noen ide til å komme rundt dette på? NTFS i seg selv ligger vel på rundt 32000. har funnet https://msdn.microsoft.com/library/default....ming_a_file.asp men ikke fått unicode løsningen til å virke. Det å endre filstrukturer er dessverre ikke en løsning, da jeg ikke har kontroll over hva som blir lagt dit. Jeg skal kun samle inn total størrelse på mange kataloger. mvh Arathorn
Arath Skrevet 9. februar 2008 Forfatter Skrevet 9. februar 2008 Ser ut som eneste vei jeg kan komme rundt dette er ved å jobbe mot win32 API selv. Får vel prøve meg på det....
GeirGrusom Skrevet 9. februar 2008 Skrevet 9. februar 2008 Hmmm verken Winapi og .NET skal egentlig ha noen problemer med dette, det er egentlig en "feil" i eldre programmer skrevet i C eller C++ som hadde dette problemet....
Arath Skrevet 11. februar 2008 Forfatter Skrevet 11. februar 2008 Det kan virke som om dette er ett generelt problem. Følgende kode klager dersom filepath blir over 260 tegn. FileStream fs = new FileStream(filepath,FileMode.Open,FileAccess.Read) Også System.IO.FileInfo(filepath) klager. Dersom du har noen andre ideer til hvordan jeg skal komme meg rundt det så vil jeg gjerne høre det. mvh Arathorn
Arath Skrevet 11. februar 2008 Forfatter Skrevet 11. februar 2008 Klienten er Windows XP med SP2. Bruker c# med visual studio express 2008. dotnet 3.5 Problemet er ikke dotnet relatert i seg selv. Explorer klarer heller ikke å åpne de samme filene.
GeirGrusom Skrevet 11. februar 2008 Skrevet 11. februar 2008 Nei, for så lenge det er på NTFS skal det være ganske lange baner før den ikke klarer å åpne dem, men på CD eller FAT så er det vel maks 256 tegn tror jeg.
Arath Skrevet 12. februar 2008 Forfatter Skrevet 12. februar 2008 (endret) NTFS har begrensning på 32000 tegn. CD og FAT32 har begrensning på 256. Men utforsker og dotnet har også denne begrensningen. Enkelt å teste. prøv å opprett 6 kataloger med 50 tegn under hverandre. Du kan derimot lage ett share som mapper opp 4 katalog, og dermed få laget flere kataloger under der. eks: c:\Katalog1(50 tegn)\Katalog2(50 tegn)\Katalog3(50 tegn)\Katalog4(50 tegn)\Katalog5(50 tegn)\ Her vil du ikke få lagt til en katalog til \\localhost\katalog4(50 tegn)\katalog5(50 tegn)\katalog6(50 tegn) Her vil du få lagt til ny katalog Endret 12. februar 2008 av Arathorn
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å