Newsgroup: it.comp.lang.visual-basic
Titolo: FileCopy

Premetto che sono un autodidatta alle prime armi per cui vi chiedo scusa in
anticipo per la probabile banalità del mio problema:
Devo rinominare delle foto presenti sulla flash della macchina fotogr. con
nr di matricola corrispondente all'oggetto presente in ogni immagine.
Sul PC di casa dove ho scritto il codice tutto bene. Sul portatile dove
viene inserita la flash tramite una pcmci a volte funziona a volte da
"errore di run-time '75' - errore di accesso al percorso\file".
l'errore avviene quando vengono copiati i files in una cartella temporanea
(nel caso volessi interrompere il processo di rinomina e ritornare alla
situazione originale sulla flash).  Per copiare i files uso un codice tipo
questo:
------------
Dim sFotoFiles As String   'nome file foto
Dim sPercorso As String    'percorso flash
Dim sPercrsoDestinaz As String   'percorso cartella temporanea
sFotoFiles = Dir$(sPercorso & "*.jpg")
Do While sFotoFiles <>  ""
    sFoto1 = sPercorso & sFotoFiles
    sFoto2 = sPercorsoDestinaz & sFotoFiles
    FileCopy sFoto1, sFoto2
    sFotoFiles = Dir$
Loop
------------
-Sembra che l'errore avvenga sempre sullo stesso file.
-L'errore avviene dopo che sono stati copiati alcuni files
-Ho provato ha installare VB sul portatile e in fase di debug le variabili
sFoto1 e sFoto2 erano corrette
Qualcuno può darmi una mano a capire l'origine di questo errore e come posso
fare per correggerlo?
Vi ringrazio già da ora.

 scusa in anticipo per la probabile banalità del mio problema: (cut)
filecopy crea un duplicato del file, non lo sposta, per cui il tuo ciclo è
infinito (la directory non è mai vuota) e prima o poi cerchi di copiare lo
stesso file.
dopo aver copiato un file, dovresti cancellare l'origine con kill.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 ha scritto nel messaggio
news:2oe14mF...@uni-berlin.de...

----------
La cartella temporanea viene svuotata con il comando Kill all'evento Load
della Form per cui escluderei che il programma si blocchi perchè tenta di
copiare lo stesso file ....almeno credo.
grazie comunque

"Vitto" <casta...@NOSPAMlibero.it> ha scritto nel messaggio
news:KZ9Uc.42159$1V3.1...@twister2.libero.it...

Non mi è ben chiaro l'origine dell'errore, però...
Se usi XP, ha la brutta tendenza a tenere aperti i file multimediali
(foto/video) se li stai visualizzando con l'explorer.
Fossi in te proverei a fare la copia con l'api CopyFile, per vedere cosa
succede.
l'api copyfile se ne frega se il file è in uso, lo dovrebbe quindi copiare
ugualmente, poi hai la possibilità di scegliere se sovrascrivere file già
esistenti o meno.
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long
-- 
Guarda, ma non toccare!
Tocca, ma non gustare!
Gusta, ma non inghiottire!
Per rispondere in privato elimina dall'indirizzo "togliquesto"
MasterDavidex - David Ruscelli

"Vitto" <casta...@NOSPAMlibero.it> ha scritto nel messaggio
news:KZ9Uc.42159$1V3.1...@twister2.libero.it...

ho provato.
messo una cf256 nel lap, formattandola fat con windows.
copiati sopra 270 jpeg piccoletti, 38 mb in tutto.
(nb: sembrava gia' formattata, ma dopo neanche 10 mb al primo giro dava
'spazio insufficiente').
usato il codice seguente:
Private Sub Command1_Click()
    Dim sf As String   'nome file foto
    Dim sp1 As String    'percorso flash
    Dim sp2 As String   'percorso dell'ormai mitico sp di xp :)
    sp1 = "f:\temp\"
    sp2 = "c:\temp\foto\"
    sf = Dir$(sp1 & "*.jpg")
    Do While sf <> ""
        FileCopy sp1 & sf, sp2 & sf
Caption = sf: DoEvents
        sf = Dir
    Loop
    MsgBox "ok"
End Sub
li ha copiati tutti senza problemi.
nb: mentre li mettevo sulla cf, pero', si sono piu' volte impuntati sia
salamander sia la console. la copia andava avanti a sussulti e strappi,
molto peggio che da vb.
la cf non e' ram, e non e' neppure un disco, e' una strana cosa. la canon,
p.e., vede le cf nikon (e viceversa), ma non riconosce la formattazione
fatta da windows. e una cf che e' defunta in vacanza la macchina non la
vedeva piu' e windows si'.
vitto, prova a snellire il tuo codice (cfr la riga del filecopy: perche' usi
due variabili inutili e non dichiarate prima?) e a mettere un doevents nel
ciclo.
hth, ciao, j.