Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[vb.net] File word soms 2 keer gekopieerd

Pagina: 1
Acties:

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
We hebben scanners met een zelfgemaakte applicatie. Deze gaat op de 5 minuten de scannings die in een txt file op de scanner staan kopiëren naar een locatie op het netwerk.

Dan controleer ik of de file op de server aanwezig is, zo ja dan kijk het script of er een storage card aanwezig is, zo ja dan word de txt daar opgeslagen als back-up en dan verwijder ik de txt file.

Echter merken we dat sinds kort meerdere malen worden gekopieerd. Ik vermoed dat het te maken heeft met dat de netwerk connectie even wegvalt tussen het kopiëren en controleren, maar ben daar niet helemaal zeker van. Vroeger heb ik het al wel eens 1 of 2 keer weten voorvallen maar nu was het meermaals per dag.
Eigenlijk hoopte ik dat de functie copy een true zou returnen indien gekopieerd maar dat blijkt niet zo te zijn of ik vind daar toch niets van terug in de documentatie

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Copy_File_To_Server()
        Dim name As String
        name = Date.Now.ToString("yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture) & txtGebruiker.Text & "-TERM001.TXT"
        'MsgBox(name)
        If IsConnected() Then
            LogSync("connected")
            If File.Exists("FlashDisk\TERM001.TXT") Then
                File.Copy("FlashDisk\TERM001.TXT", "\\sbs\files\MAP\" & name, False)
                If Directory.Exists("Storage Card\") Then
                    File.Copy("FlashDisk\TERM001.TXT", "Storage Card\" & name, False)
                Else
                    LogSync("Storage card not found. " & name & " not backed-up")
                End If
                If File.Exists("\\sbs\files\MAP\" & name) Then
                    LogSync(name & " found on server -> deleting")
                    File.Delete("FlashDisk\TERM001.TXT")
                    Me.Text = titel & " S: " & Date.Now.ToString("HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)
                End If
            Else
                LogSync("No TERM001.TXT found")
            End If
        Else
            LogSync("Not connected...")
        End If
    End Sub


Hoe kan ik een waterdicht systeem maken dat er altijd voor zorgt dat de file weg is en indien ze weg is altijd verwijderd word? Ben hier al even op bezig en bovenstaande code is het laatste wat ik heb gemaakt en nu is het enkel erger geworden, en het enige dat ik toegevoegd heb zijn alleLogSync aanroepen en deze lijnen:

Visual Basic .NET:
1
2
3
4
5
6
7
If Directory.Exists("Storage Card\") Then
   File.Copy("FlashDisk\TERM001.TXT", "Storage Card\" & name, False)
Else
    LogSync("Storage card not found. " & name & " not backed-up")
End If

Me.Text = titel & " S: " & Date.Now.ToString("HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)


Verder is de code voor het kopiëren en controleren ongewijzigd gebleven, dus het is me een mysterie waarom we er nu plots zoveel last van hebben.

Just me


  • roviaro
  • Registratie: November 2013
  • Laatst online: 10:27
Als een copy actie fout gaat dan krijg je een exception. Waarschijnlijk zie je die niet (weggemoffeld?) waardoor de copy actie niet plaatsvindt en je bij de volgende aanroep een retry krijgt.

Vang dus eerst die exceptions eens af om te zien wat er mis gaat bij de copy:

Opzetje:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
If File.Exists("FlashDisk\TERM001.TXT") Then    
    Try
        File.Copy("FlashDisk\TERM001.TXT", "\\sbs\files\MAP\" & name, False) 
        If Directory.Exists("Storage Card\") Then
            File.Copy("FlashDisk\TERM001.TXT", "Storage Card\" & name, False)
        End If
        If File.Exists("\\sbs\files\MAP\" & name) Then
            File.Delete("FlashDisk\TERM001.TXT")
        End If 
    Catch e As Exception
        LogSync("Copy failed for reason " & e.Message & " with stacktrace " & e.StackTrace) 
    End Try
End If


Overigens raad ik je aan nog iets te doen met variabelen voor de file paden/namen voor wat meer duidelijkheid/leesbaarheid.

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Maar soms kopieerd hij dus wel, waardoor de copy dus geen exeption zal geven, maar vind hij ze niet bij de controle ofdat het op de server staat waardoor ze niet verwijderd worden.
Met als gevolg dat 5 minuten later hetzelfde document ge-upload zal worden...

Just me


  • roviaro
  • Registratie: November 2013
  • Laatst online: 10:27
Dan is er niet echt een probleem toch? Je geeft bij parameter overwrite false dus als ie er al staat zal ie hem niet overschrijven. Als er de eerste keer een probleem is bij de controle of ie gekopieerd is, dan zal ie de tweede keer netjes verwijderd worden.

Je hebt de volgende opties:
- Zo laten, er is niet echt een probleem (tenzij het source bestand natuurlijk weg moet zijn voor andere functionaliteit).
- Retries inbouwen (dus b.v. paar seconden wachten en opnieuw kijken of ie gekopieerd is)
- Als file.copy geen exception geeft er vanuit gaan dat het goed gegaan is, dus geen controle meer doen op de destination
- Een File.Open variant gebruiken op de destination zodat je een goede exception krijgt als er iets mis is met de verbinding o.i.d. File.Exists geeft namelijk altijd false ook als er iets anders aan de hand is dan een niet bestaande file.

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Er is weldegelijk een probleem want de txt file word continu aangevuld met scannings, dus als de hij wel gekopieerd is, maar niet verwijderd, zal het nog eens geupload worden, met de oude en nieuwe lijnen, en een nieuwe naam (want de naam bevat een timestamp) dus hij zal normaal nooit een dubbele naam hebben (timestamp-username-TERM001.txt)

De try catch kan me al zeker helpen, de file.open zal ik ook eens testen.

Just me


  • roviaro
  • Registratie: November 2013
  • Laatst online: 10:27
Als het source bestand steeds bijgewerkt wordt dan heb je wellicht het probleem dat ie niet weggegooid kan worden omdat ie gelocked is. Dus je kan ook nog een file.delete probleem hebben. Ook daar even try/catch doen.

Je moet nu al genoeg logging hebben om te zien waar het fout gaat (copy of delete).

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Al zeker bedankt voor de info.
Ik ga dit zeker gebruiken, echter hebben we hier toestellen te kort waardoor ik momenteel niets kan testen. Dit zal waarschijnlijk pas op zaterdag kunnen gebeuren dus dan ga ik pas feedback kunnen geven op jullie tips.

Just me


  • roviaro
  • Registratie: November 2013
  • Laatst online: 10:27
Succes! Hoor graag of het gelukt is en waar het nou mis ging.

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
A lekker rustig op een zaterdag op kantoor, niemand op het hele bedrijf buiten ik. Rustig werken zonder gestoord te worden met mijn favoriete muziek gewoon door de speakers ipv de koptelefoon. (blijkbaar vinden de meeste mensen metal niet zo'n fijne achtergrond muziek voor tijdens het werk, snap je niet he...)

Maar dus on topic...
Ik heb een aantal tips ter harte genomen en heb het zo aangepast:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 Private Sub Copy_File_To_Server()
        Dim name, local_file, server_location, storage As String
        name = Date.Now.ToString("yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture) & txtGebruiker.Text & "-TERM001.TXT"
        local_file = "FlashDisk\TERM001.TXT"
        server_location = "\\sbs\files\MAP\"
        storage = "Storage Card\"
        'MsgBox(name)
        If IsConnected() Then
            LogSync("connected")
            If File.Exists(local_file) Then
                Try
                    File.Copy(local_file, server_location & name, False)
                    If Directory.Exists(storage) Then
                        File.Copy(local_file, storage & name, False)
                    Else
                        LogSync("Storage card not found. " & name & " not backed-up")
                    End If
                    If File.Exists(server_location & name) Then
                        LogSync(name & " found on server -> deleting")
                        File.Delete(local_file)
                        Me.Text = titel & " S: " & Date.Now.ToString("HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)
                    End If
                Catch e As Exception
                    LogSync("Copy failed for reason " & e.Message & " with stacktrace " & e.StackTrace)
                End Try
            Else
                LogSync("No TERM001.TXT found")
            End If
        Else
            LogSync("Not connected...")
        End If
    End Sub


op de eerste twee scanners die ik teste ging alles goed, geen problemen, geen meldingen,
(de NOSYNC is een username, die geeft aan dat de txt's niet verwerkt moeten worden door de onze software, hij is eigenijk gemaakt om de sync te testen en dergelijke, beetje verwarrende naam misschien maar die mag je dus gewoon zien als een willekeurige username)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2014-04-05 10:46:22::NOSYNC::Timer Sync
2014-04-05 10:46:22::NOSYNC::connected
2014-04-05 10:46:22::NOSYNC::No TERM001.TXT found
2014-04-05 10:47:22::NOSYNC::Timer Sync
2014-04-05 10:47:22::NOSYNC::connected
2014-04-05 10:47:22::NOSYNC::20140405104722NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 10:48:22::NOSYNC::Timer Sync
2014-04-05 10:48:22::NOSYNC::connected
2014-04-05 10:48:23::NOSYNC::20140405104822NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 10:49:22::NOSYNC::Timer Sync
2014-04-05 10:49:22::NOSYNC::connected
2014-04-05 10:49:23::NOSYNC::20140405104922NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 10:51:23::NOSYNC::Timer Sync
2014-04-05 10:51:23::NOSYNC::connected
2014-04-05 10:51:24::NOSYNC::20140405105123NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 10:52:24::NOSYNC::Timer Sync
2014-04-05 10:52:24::NOSYNC::connected
2014-04-05 10:52:24::NOSYNC::20140405105224NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 10:53:24::NOSYNC::Timer Sync
2014-04-05 10:53:24::NOSYNC::connected
2014-04-05 10:53:24::NOSYNC::No TERM001.TXT found
2014-04-05 10:54:24::NOSYNC::Timer Sync
2014-04-05 10:54:24::NOSYNC::connected
2014-04-05 10:54:24::NOSYNC::No TERM001.TXT found


nu wist ik al dat het niet op alle scanners was, de vraag was nu enkel de welke, al een geluk was de 3e die ik teste een goede, of beter gezegd een slechte. Die bleef dezelfde txt uploaden en als je bijscande voegde hij dat gewoon toe en stuurde het samen terug op. En daar heb ik nu volgende melding in gevonden in de logs:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2014-04-05 11:01:11::NOSYNC::Timer Sync
2014-04-05 11:01:11::NOSYNC::connected
2014-04-05 11:01:11::NOSYNC::Copy failed for reason IOException with stacktrace    at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at RecyScan.MainDlg.Copy_File_To_Server()
   at RecyScan.MainDlg.TmrSync_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer._WnProc(WM wm, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.ApplicationThreadContext._InternalContextMessages(WM wm, Int32 wParam, Int32 lParam)
   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
   at System.Windows.Forms.Application.Run(Form fm)
   at RecyScan.MainDlg.Main()

2014-04-05 11:02:11::NOSYNC::Timer Sync
2014-04-05 11:02:12::NOSYNC::connected
2014-04-05 11:02:12::NOSYNC::Copy failed for reason IOException with stacktrace    at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at RecyScan.MainDlg.Copy_File_To_Server()
   at RecyScan.MainDlg.TmrSync_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer._WnProc(WM wm, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.ApplicationThreadContext._InternalContextMessages(WM wm, Int32 wParam, Int32 lParam)
   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
   at System.Windows.Forms.Application.Run(Form fm)
   at RecyScan.MainDlg.Main()

2014-04-05 11:03:13::NOSYNC::Timer Sync
2014-04-05 11:03:13::NOSYNC::connected
2014-04-05 11:03:13::NOSYNC::Copy failed for reason IOException with stacktrace    at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at RecyScan.MainDlg.Copy_File_To_Server()
   at RecyScan.MainDlg.TmrSync_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer._WnProc(WM wm, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.ApplicationThreadContext._InternalContextMessages(WM wm, Int32 wParam, Int32 lParam)
   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
   at System.Windows.Forms.Application.Run(Form fm)
   at RecyScan.MainDlg.Main()

2014-04-05 11:04:13::NOSYNC::Timer Sync
2014-04-05 11:04:13::NOSYNC::connected
2014-04-05 11:04:13::NOSYNC::No TERM001.TXT found


(die laatste waar hij de txt niet vind is omdat ik hem manueel gedelete heb...)

Nu heb ik weer meer informatie om op verder te werken, ik wou al maar laten weten dat er met jullie tips gewerkt word en dat ze vruchten beginnen te kweken, nu nog even doorzoeken tot ze die vruchten ook nog afwerpen.
Tips zijn uiteraard welkom en mocht ik nog vragen hebben dan stel ik ze wel als ze komen. Maar toch al zeker bedankt voor de hulp tot nu toe.

Update 11.50
ik heb de code nog een beetje aangepast, om elk stuk apart te laten uitvoeren zodat een error op de copy niet verhinderd dat de check naar de server word uitgevoerd:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    Private Sub Copy_File_To_Server()
        Dim name, local_file, server_location, storage As String
        name = Date.Now.ToString("yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture) & txtGebruiker.Text & "-TERM001.TXT"
        local_file = "FlashDisk\TERM001.TXT"
        server_location = "\\sbs\files\MAP\"
        storage = "Storage Card\"
        'MsgBox(name)
        If IsConnected() Then
            LogSync("connected")
            If File.Exists(local_file) Then
                Try
                    File.Copy(local_file, server_location & name, False)
                Catch e As Exception
                    LogSync("Copy failed for reason " & e.Message & " with stacktrace " & e.StackTrace)
                End Try
                Try
                    If Directory.Exists(storage) Then
                        File.Copy(local_file, storage & name, False)
                    Else
                        LogSync("Storage card not found. " & name & " not backed-up")
                    End If
                Catch e As Exception
                    LogSync("Copy to storage failed for reason " & e.Message & " with stacktrace " & e.StackTrace)
                End Try
                Try
                    If File.Exists(server_location & name) Then
                        LogSync(name & " found on server -> deleting")
                        File.Delete(local_file)
                        Me.Text = titel & " S: " & Date.Now.ToString("HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)
                    End If
                Catch e As Exception
                    LogSync("Server checka and delete faild for reason " & e.Message & " with stacktrace " & e.StackTrace)
                End Try

            Else
                LogSync("No TERM001.TXT found")
            End If
        Else
            LogSync("Not connected...")
        End If
    End Sub


Dat geeft dit in de error logs:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2014-04-05 11:46:19::NOSYNC::Timer Sync
2014-04-05 11:46:20::NOSYNC::connected
2014-04-05 11:46:20::NOSYNC::Copy to storage failed for reason IOException with stacktrace    at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at RecyScan.MainDlg.Copy_File_To_Server()
   at RecyScan.MainDlg.TmrSync_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer._WnProc(WM wm, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.ApplicationThreadContext._InternalContextMessages(WM wm, Int32 wParam, Int32 lParam)
   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
   at System.Windows.Forms.Application.Run(Form fm)
   at RecyScan.MainDlg.Main()

2014-04-05 11:46:20::NOSYNC::20140405114619NOSYNC-TERM001.TXT found on server -> deleting
2014-04-05 11:47:19::NOSYNC::Timer Sync
2014-04-05 11:47:19::NOSYNC::connected
2014-04-05 11:47:19::NOSYNC::No TERM001.TXT found


Dit is wat ze in de medische wereld symptoom bestrijding noemen, want nu doet hij het wel, ongeacht de IOException op de file.copy gaat hij toch nakijken op de server of het document aanwezig is en verwijderen indien dat zo is.
Nu blijft wel de vraag, waarom geeft hij een exception als hij het document wel verwijderd heeft? Want ze zullen hier wel blij zijn dat het doet wat het moet doen, maar dat wil niet zeggen dat ik als programmeur blij ben met een error op een aantal van de toestellen waar we geen uitleg of oplossing voor hebben... En eerlijk gezegd snap ik het ook niet echt goed, dus als iemand hier een uitleg aan kan geven zou dat fijn zijn. Ik ben nu een beetje aan het lezen over IOExceptions en hopen dat ik daar weer wat wijzer van word :+

[ Voor 36% gewijzigd door Dorgaldir op 05-04-2014 11:59 ]

Just me


Verwijderd

Kijk of het helpt als je een Application.DoEvents() plaatst tussen File.Copy en File.Exists.

File.Copy(local_file, storage & name, False)
If File.Exists(server_location & name) Then

Waarom eerst storage & name en later server_location & name en niet storage & name?

[ Voor 50% gewijzigd door Verwijderd op 05-04-2014 12:05 ]


  • Lethalis
  • Registratie: April 2002
  • Niet online
In plaats van een algemene exception kun je trouwens ook subclasses van IOException catchen om te bepalen wat de fout nou precies is:

DirectoryNotFoundException
EndOfStreamException
FileNotFoundException
FileLoadException
PathTooLongException

Dan heb je misschien een beter idee van wat er nou precies fout gaat :)

Soms helpt het ook om naar de InnerException te kijken.

[ Voor 8% gewijzigd door Lethalis op 05-04-2014 12:05 ]

Ask yourself if you are happy and then you cease to be.


  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Als ik
Visual Basic .NET:
1
LogSync("Inner exception " & e.InnerException.Message)

toevoeg dan krijg ik een runtime error met een NullReferenceException.

en gewoon
Visual Basic .NET:
1
LogSync("Inner exception " & e.InnerException)

aanvaard hij niet...

Just me


  • Lethalis
  • Registratie: April 2002
  • Niet online
Omdat er niet altijd een InnerException is.

Ik voeg in log routines dus altijd een extra controle toe daarop.

Hebben we een InnerException? Zo ja, dan loggen we deze ook.

Mijn Log functie zou dan dus als parameters een String hebben voor de message, en een Exception voor het loggen van de Exception zelf. En in de functie zelf, zou ik dan alles loggen. De message, de stacktrace, en dezelfde dingen ook van de InnerException als deze gevuld is.

Ask yourself if you are happy and then you cease to be.


  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
en als ik dit doe
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Try
                    If Directory.Exists(storage) Then
                        File.Copy(local_file, storage & name, False)
                    Else
                        LogSync("Storage card not found. " & name & " not backed-up")
                    End If
                Catch e As DirectoryNotFoundException
                    LogSync("DirectoryNotFoundException " & e.Message & " with stacktrace " & e.StackTrace)
                Catch e As EndOfStreamException
                    LogSync("EndOfStreamException " & e.Message & " with stacktrace " & e.StackTrace)
                Catch e As FileNotFoundException
                    LogSync("FileNotFoundException " & e.Message & " with stacktrace " & e.StackTrace)
                Catch e As PathTooLongException
                    LogSync("PathTooLongException " & e.Message & " with stacktrace " & e.StackTrace)
                Catch e As Exception
                    LogSync("Copy to storage failed for reason " & e.Message & " with stacktrace " & e.StackTrace)
                End Try


krijg ik nog steeds gewoon dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2014-04-05 12:52:17::NOSYNC::Manual Sync
2014-04-05 12:52:17::NOSYNC::Preparing: 20140405125217NOSYNC-TERM001.TXT
2014-04-05 12:52:18::NOSYNC::connected
2014-04-05 12:52:18::NOSYNC::Copy to storage failed for reason IOException with stacktrace    at System.IO.__Error.WinIOError(Int32 errorCode, String str)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
   at RecyScan.MainDlg.Copy_File_To_Server()
   at RecyScan.MainDlg.btnSync_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)
   at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
   at System.Windows.Forms.Application.Run(Form fm)
   at RecyScan.MainDlg.Main()

2014-04-05 12:52:18::NOSYNC::20140405125217NOSYNC-TERM001.TXT found on server -> deleting


Dus geen van de andere exceptions worden gevangen (tenzij ik het fout doe), ik vond nog wel meer subclasses op http://msdn.microsoft.com...oexception(v=vs.110).aspx maar die gaven een not defined melding.

Just me


  • Lethalis
  • Registratie: April 2002
  • Niet online
Wat staat er in de HResult van de IOException?

Ik zou op de 1 of andere manier proberen om bij de errorCode van die WinIOError te komen.

[ Voor 50% gewijzigd door Lethalis op 05-04-2014 13:25 ]

Ask yourself if you are happy and then you cease to be.


  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Dat zal spijtig genoeg voor een andere keer zijn, toch zeker bedankt voor je input. Maar ik offer ook niet mijn hele zaterdag op om te werken ;)
Hopelijk kan ik dit verder opnemen en oplossen. Echter zal het er wat van afhangen hoeveel tijd ik heb, als het werkt zijn er spijtig genoeg andere prioriteiten die aangepakt moeten worden.

Just me


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Gooi eens in dit stukje :
code:
1
2
3
If Directory.Exists(storage) Then 
                        File.Copy(local_file, storage & name, False) 
                    Else

Een losse try catch om de file.copy heen... Want ik gok (omdat je al zegt dat je een twijfelachtig netwerk hebt) dat je directory.exists eruit klapt omdat die in het algemeen al niet de netwerkshare kan bereiken en dan loop je inderdaad niet in de inner exceptions... (Die treden enkel op als je minimaal de aangegeven root van de schijf kan benaderen, bereik je de root niet vanwege een netwerk wat af en toe wegvalt, tja dan wordt het hocus pocus)
Pagina: 1