10. august 2004 - 15:44Der er
5 kommentarer og 1 løsning
Teste om et object er oprettet.
Jeg har en metode hvori der på et tidspunkt åbnes en fFile som typen File, som bliver kopieret fra A til B. For at undgå tabt data ved eventuelle fejl forsøger jeg i errorhandleren at kopiere denne fil til en errorfolder:
UTIL.FileMove ffile.Path, sbackupfilename
(UTIL.FileMove(Source,Destination) er en metode der flytter en fil)
Men i det tilfælde, at der sker en fejl i metoden inden filen er blevet oprettet endnu, vil dette jo give en fejl i errorhandleren, når den forsøger at flytte et object der ikke er er sat endnu. Er der en måde i VB hvorpå man kan tjekke om et objekt er oprettet, som jeg så vil kunne placere inden jeg evt. forsøgte at flytte filen i errorhandleren?
Altså noget med
If fFile is oprettet Then ...og så kan jeg trygt flytte filen, fordi jeg ved den eksisterer End If
Dim MinFil As FileSystemObject Dim DrevOgSti As String
Set MinFil = New FileSystemObject
'Hvis filen ikke eksisterer If Not MinFil.FileExists(DrevOgSti) Then
msgbox "Filen findes ikke på denne adresse" End If
Set MinFil = Nothing 'Fjerner MinFil Object fra hukommelsen ----------------------------------------- For at FileSystemObject skal virke er du nød til at afkrydse "Microsoft Scripting Runtime" i Reference listen som du finder under menupunktet Project i Visual Basic. Håber du kan få det til at virke
Variablen DrevOgsti skal naturligvis indeholde Komplet Sti og filnavn Cole
Invalid use of object får jeg ved at tjekke om filen er nothing.
cole: sagen er, at DrevOgSti ikke er lig med noget når filen ikke er oprettet endnu. Derfor kan jeg heller ikke gøre det på den måde. Jeg blir nødt til at tjekke om filen overhovedet er sat til noget. Men dette kan ikke gøre uden at fremprovokere en error såvidt jeg kan se.
Filen er vel oprettet når du har kopieret den fra A til B. derved kender du også både A og B adresse og filnavn. Noget andet er hvad er UTIL? Hvilk sprog kører du? kører du VB Application for Word, Excel eller Access? For hvis du gør det så er det noget andet.
Man skal ikke programere ud fra at man får en fejl som skal behandles i fejlmiljøet, fejl skal så vidt muligt opsnappes i programeringsrutiner.
Hvis du starter med at kopiere fFilen til B og så tester om det er gået godt med den programkode som jeg har beskrevet så kender du jo adressen og filnavnet.
FileSystemObject har iøvrigt også en Kopifunktion kik i VB help og husk at afkrydse "Microsoft Scripting Runtime" i Reference listen ellers virker det ikke.
Det er VB6. UTIL er blot en klasse, hvori der ligger en masse hjælpemetoder.
Programmet er lavet som en service, som kører hvert minut på en server. En af funktionerne scanner en masse foldere PÅ ANDRE SERVERE efter filer. Hvis der er filer i folderne skal de flyttes til et andet sted. Alle disse lokationer er specificeret i en .ini fil, som bliver læst ind i starten. Hvis en af disse lokationer ikke findes (f.eks. hvis en server er ved at blive bootet), ryger metoden i errorhandleren fordi den ikke kan finde den sti, som der er angivet i .ini filen. Errorhandleren indeholder dog også noget, som sørger for at filer, der af en eller anden grund fejler under overførsel bliver kopieret til en error-folder. Men hvis stien ikke engang kan findes, er der selvfølgelig heller ingen fil oprettet og så fejler den i errorhandleren. SÅ måske jeg skal lave et tjek i metoden om stien overhovedet findes fremfor at lade den ryge i errorhandleren.
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.