Newsgroup: it.comp.lang.visual-basic
Titolo: vb6 e alzheimer

Improvviso attacco di alzheimer da parte di VB
If fso.FolderExists("C:\Prop") = True Then
         fso.DeleteFolder ("C:\Prop\"), True
End If
Se ne sbatte altamente della condizione posta e va direttamente alla 
seconda riga. Almeno questo è tanto vero quanto l'esistenza della dir! 
Quest'ultima infatti esiste eccome(!!) e quel True è più True che mai, 
ma la dir non viene trovata (Errore di runtime 76 Impossibile trovare il 
percorso) e quindi non viene cancellata.
Qualche pensiero?
-- 
Gulp®

"Gulp®" ha scritto

Non uso FSO, quindi il mio parere vale come
il due di fiori quando comanda bastoni ;-))
Però vedo un backslash in più, lì.
E comunque, niente che un
    If Dir$("C:\Prop", vbDirectory) <> "" Then RmDir "C:\Prop"
non possa risolvere, o sbaglio ?
Bye, G. 

 Perň vedo un backslash in piů, lě.
E poi dicono occhio di lince!
Ma,  il Papero?
-- 
Greg 

 Ma,  il Papero?
In che senso ?
Bye, G. 

>> Perň vedo un backslash in piů, lě.
fso.CopyFile "C:\Prop\" & o, pathF
kill "C:\Prop\*.*"
If Dir$("C:\Prop", vbDirectory) <> "" Then RmDir "C:\Prop"
Buona anche la backslash in meno... perň siamo punto e a capo. Da anni 
uso vb6 e non ho ancora imparato a cancellare una dir.
il debug seleziona RmDir con:
Errore di runtime 75: errore di accesso al percorso/file
-- 
Gulp®


Hai provato a mettere il percorso in una stringa ? 

 Hai provato a mettere il percorso in una stringa ?
....emmm ho l'impressione che questa mi rimanga aperta:
Shell cmd & " /c COPY /B C:\Prop\" & p & "+C:\Prop\fides.zip C:\Prop\" & o
e non mi permetta il delete per uso della dir.
Come faccio a chiuderla e "liberare" la dir?
-- 
Gulp®


Hai provato a mettere il percorso in una stringa ? 


da If Dir$("C:\Prop", vbDirectory) <> "" Then RmDir "C:\Prop"
a  If Dir$(strPath, vbDirectory) <> "" Then RmDir strPath
..e cosa dovrebbe cambiare?
-- 
Gulp®

"Gulp®" ha scritto

Ma 'o' l'hai già cancellato, prima di tentare la Kill
sulla directory che lo contiene ? Cito dall'help:
"Se si tenta di utilizzare RmDir per rimuovere una directory
o una cartella contenente dei file, verrà generato un errore.
Prima di rimuovere la directory o la cartella, è necessario
eliminare tutti i file con l'istruzione Kill."
A questo punto forse ti converrebbe fare una shell
di "DEL /S /Q C:\Prop".
[Poi, a cosa serva fare un merge binario di un file .zip
e di un "qualchealtracosa" non so bene a cosa serva,
ma saranno fatti tuoi :-)]
Bye, G. 

 di "DEL /S /Q C:\Prop".
Anche questa mi da errore.
Comunque la tua:
If Dir$("C:\Prop", vbDirectory) <> "" Then RmDir "C:\Prop"
Piazzata il un altro progetto dove non eseguo:
Shell cmd & " /c COPY /B C:\Prop\" & p & "+C:\Prop\fides.zip C:\Prop\" & o
naturalmente funziona !
Per cui confermo, ho l'impressione che quella shell mi rimanga attiva 
in accesso alla dir e che questo impedisca la cancellazione.
Si anche dopo che kill ha lasciato la dir completamente vuota, mi 
ritorna lo stesso errore di percorso/accesso.
Non so che comando (Exit?) ma sopratutto dove e come aggiungerlo per 
chiudere quella shell.
Riassumendo codice:
Shell cmd & " /c COPY /B C:\Prop\" & p & "+C:\Prop\fides.zip C:\Prop\" & o
CopyFile "C:\Prop\" & o, pathF, 0
Kill "C:\Prop\*.*"
cmd = Environ$("COMSPEC")
Shell cmd & "DEL /S /Q C:\Prop\"   'da err 53
'If Dir$("C:\Prop", vbDirectory) <> "" Then RmDir "C:\Prop" 'da err 75
   'If fso.FolderExists("C:\Prop") = True Then
         'fso.DeleteFolder ("C:\Prop\"), True      'da err 76
   'End If
-- 
Gulp®

   'End If
Cosï¿œ a occhio, proporrei una seduta di psicanalisi,
un esorcismo (consiglierei Don Zauker) o un po' di
programmazione Voodoo:
http://www.soft-land.org/storie/bertoncello/15
Nel frattempo metti uno stop in cima, avanza passo passo
con F8 tenendo aperta una finestra di explorer su quella
cartella e vedi in tempo reale cosa succede.
Terza possibilitï¿œ: invece di lanciare una linea di
comando per volta, scrivi un batch e lancia quello.
Se non risolvi cosï¿œ, sguinzaglia Process Monitor
di SysInternals con un filtro attivato sull'eseguibile
di VB e controlla dov'ï¿œ che succede qualcosa che non
dovrebbe succedere.
Un altro piccolo dubbio: se c'ï¿œ qualche antivirus
particolarmente invasivo o lento, o i file sono grossi,
puï¿œ essere che la prima operazione non sia ancora finita
quando tu vai a copiare o cancellare il file, prova
a mettere qualche pausa.
Da qui, la sfera di cristallo non funziona bene... :-(
Bye, G. 

 Bye, G.
Seguirò i consigli.
Grazie moltissime/o
Anche se ti presenti come un semplice Papero...Gulp! Didatticamente sei 
un aquila!
Ciao
-- 
Gulp®