mschol | zondag 23 september 2007 @ 15:38 | |||
ik ben bezig in VB.net een programmatje te schrijven dat een directory structuur inclusief bestanden uitleest en die gegevens door pompt naar Mysql server echter heb ik (nu) 3 vragen: 1) ik heb een functie geschreven om een arrayList terug te krijgen met bestandsnamen:
echter zit ik daar met een aantal probleempjes: a) ik loop soms tegen Exceptions aan, hoe kan ik die het beste opvangen als ik een arraylist terug moet geven? b) ik gebruik nu een if met daarin een aantal voorwaarden om mappen uit te sluiten.. dit wil ik soepeler kunnen aangeven.. hoe moet ik dat doen? c) onder vista zijn link point (oid) dit zijn verwijzingen naar andere mappen maar zijn geen snelkoppelingen (zoals documents and settings), dat moet ik ook uitsluiten... hoe dat te doen? (zoals je misschien kan zien heb ik het al wel geprobeerd ![]() 2) ik wil van de bestanden die ik in de array zet (audio/video bestanden) de eigenschappen hebben: audio/videobitrate. aantal audio/ondertitel streams. audio/videocodec talen van de ondertiteling en audio streams iemand die mij er mee op weg kan helpen hoe ik die gegevens te pakken moet krijgen? | ||||
Detroit | zondag 23 september 2007 @ 16:08 | |||
a) Het beste kun je exceptions afvangen door te beginnen met de meest specifieke exceptie en te eindigen met de meest algemene exceptie (volgens mij System.Exception) b) Hoe bedoel je soepeler aangeven? c) Geen verstand van Vista... d) Denk dat daar vast wel iets van libraries voor zijn.. Geen idee hoe je dat handmatig moet doen, waarschijnlijk een aantal bytes in een byte-array gooien en op een bepaalde locatie kijken naar de waarde... | ||||
dikkedorus | zondag 23 september 2007 @ 16:16 | |||
Link-points zijn idd lastig, ik heb er nog niet mee gewerkt. Het is een integraal deel van NTFS, dus volgens mij moet het ondersteund worden door de api die je gebruikt. Google er eens op zou ik zeggen. Welke excepties krijg je? Zoals Detroit al zegt zou je afvangen moeten doen van meest specifieke naar meest algemene, zodat je je eigen handlers kan schrijven voor de excepties waar je wat mee kan, en dat je globale excepties (I/O errors e.d.) gewoon afhandeld door je programma te stoppen, critical termination oid.. Artiest e.d. zijn uit te lezen in de Windows shell, dus er moeten wel standaard libs voor zijn. Zoals altijd is google je vriend. MSDN helpt je ook vaak uit de nood, ik gebruik ze allebei. ![]() | ||||
mschol | zondag 23 september 2007 @ 16:17 | |||
quote:oke... ga ik naar kijken.. quote:zoals je kan zien is de lijst nu hardcoded in het programma, dit wil ik los hebben in bijvoorbeeld een array (die ik via de gui weer kan aanpassen, mappen toevoegen c.q verwijderen) ik kan er echter niet opkomen hoe dat te doen... quote:hmm oke... ik ga nogmaals google bezoeken voor b.v. libraries ![]() | ||||
mschol | zondag 23 september 2007 @ 16:19 | |||
quote:de grootste probleemgever is de SecurityException (o.a. op mappen in de windows folder, daarom nu ook geexclude) en onder vista de Link-point van Documents and settings | ||||
SuperRembo | zondag 23 september 2007 @ 16:39 | |||
Waarom gebruik je eigenlijk de searchoption niet in de GetDirectory method? Als je dat wel doet dan hoef je je searchFileSystem functie niet recursief aan te roepen. Dat is een stuk sneller. | ||||
mschol | zondag 23 september 2007 @ 17:33 | |||
quote:vind em al bijzonder rap ![]() ![]() maar ben de lulligste niet en heb het geprobeerd. dan krijg ik te maken met een exception (unauthorizedException) op system volume information ![]() die moet ik dan gaan afvangen... ik ga me boek maar induiken voor het afvangen van exceptions ![]() [ Bericht 10% gewijzigd door mschol op 23-09-2007 17:45:32 ] | ||||
SuperRembo | zondag 23 september 2007 @ 17:44 | |||
De grootte van de bestanden doet er in dit geval niet toe, wel het aantal bestanden en mappen en hoe diep de mappen genest zijn. Daarnaast is het gewoon stom om zo'n handige optie niet te benutten ![]() | ||||
mschol | zondag 23 september 2007 @ 17:47 | |||
quote:het gaat voornamelijk gebruikt worden voor 1 of 2 lagen diep en de hoeveelheid? geen idee, ik gok per dvd max 100 bestanden ![]() dvdtje's met bestanden wil ik inlezen (en daar gelijk wat video info uithalen, hoef ik dat niet handmatig te doen ![]() | ||||
F04 | zondag 23 september 2007 @ 17:49 | |||
tvp | ||||
mschol | zaterdag 1 december 2007 @ 22:54 | |||
even een ordinaire kick van mijn kant... inmiddels heb ik na veel rotzooien mijn functie helemaal herbouwd en ziet er nu zo uit:
aanroep:
de reparsepoints worden ontdekt en overgeslagen ![]() alle folders in de excluded arraylist worden ook overgeslagen ![]() de zoek functie accepteert een regex ![]() enige wat ik nu nog wil is dat hij zelf kan zien of hij wel of niet toegang heeft tot een folder (wat e.v.t zou leiden tot een NoAccessException) en deze dan automatisch overslaat (net als de reparsepoints) |