Newsgroup: it.comp.lang.visual-basic
Titolo: Come copiare un file... ?

Ho tentato di utilizzare l'istruzione FileCopy per copiare un file.
Visto, pero', che si tratta del db access utilizzato dall'applicazione
stessa, l'operazione mi viene impedita in quanto VB mi segnala che il file
e' in uso.
Come posso risolvere ?
Grazie
Aldo
P.S.
L'applicazione utilizza controlli data con DAO

 Come posso risolvere ?
con la funzione dell'API CopyFile
Ciao
Faber

 ha scritto nel messaggio
news:9htl3h$fr3rh$1...@ID-66268.news.dfncis.de...

Non ho mai usato le API.... potresti farmi un esempio di come utilizzarla ?
Grazie

 Non ho mai usato le API.... potresti farmi un esempio di come utilizzarla
?
Mi correggo ... ho appena provato ad utilizzarla.
Dimmi se ho fatto giusto :
Ho copiato la dichiarazione della funzione nella sezione dichiarazioni di un
modulo.
Poi ho scritto nel programma la chiamata alla funzione in questa maniera :
CopyFile filesorgente, filedestinazione , ???? (a che serve questo
parametro) ??
Io ci ho messo un numero a caso (0), e la funzione "funziona".
Ma a che serve il terzo parametro ??
Ciao
Aldo

 Ma a che serve il terzo parametro ??
Il terzo parametro serve a specificare il comportamento della
funzione nel caso tu utilizzassi come secondo parametro (il nome
del file in cui copiare) il nome di un file gia' esistente.
Se passi true come terzo parametro la funzione fallisce se il nuovo
file esiste gia', se passi false la funzione sovrascrive il file
esistente con la copia del file che hai passato per primo parametro.
Spero di essere stato chiaro.
Ciao.

Esiste un ocx nel sito comune che serve per copiare,spostare,eliminare,ecc..
file e cartelle, senza dover ricorrere alla chiamata delle api
Carlito
"H.P.L." <u...@vaila.ble> ha scritto nel messaggio
news:v1y07.3616$K55.1...@news.infostrada.it...


 file e cartelle, senza dover ricorrere alla chiamata delle api
e secondo te l'OCX come fa a fare quello che fa?  <g>
Faber

 ha scritto nel messaggio
news:9hurmp$fjqt2$1...@ID-66268.news.dfncis.de...


 sottocartelle e file?
guarda su 
http://www.softcircuits.com
, trovi una classe ben fatta che
utilizza SHFileOperation
Ciao
Faber

 ha scritto nel messaggio
news:9huv5q$g236n$1...@ID-66268.news.dfncis.de...


 Spero di essere stato chiaro.
Chiarissimo, grazie !
Quindi ... : false = 0 , true =1 , giusto ?
Dimmi un'altra cosa, dove hai trovato la spiegazione di queste cose.
Io le ho cercate nella guida in linea, ma non le ho trovate.
Ciao
Aldo

 ha scritto nel messaggio
news:SmM07.3310$D03.1...@news.infostrada.it...

può darsi che non hai installato MSDN perché utilizzi una versione di VB
inferiore alla 6, in ogni caso trovi tutta la documentazione che vuoi
(beh, quasi  :P) su 
http://msdn.microsoft.com
Ciao
Faber

 Spero di essere stato chiaro.
Ho fatto un po' di prove ed e' tutto ok.
Ora, pero', ho un altro problema........ :-(
Quando copio dall' hd verso il floppy funziona, quando faccio il
procedimento inverso invece no.
E' possibile che dipenda dal fatto che tento di sovrascrivere lo stesso db
che e' aperto dall'applicazione ?
Se si, come posso risolvere il problema ?
Ho tentato di applicare il metodo close su tutti i recordset aperti, ma non
funziona.
Grazie se mi aiuterai
Ciao
Aldo

 funziona.
hai chiuso anche gli oggetti DataBase (o Connection o Command, se usi
ADO)?
anche i DataControl ecc...
Faber

 anche i DataControl ecc...
Innanzitutto grazie per la tua disponibilita' e ... velocita' !
L'applicazione utilizza DAO.
Sul form ci sono due controlli data che ho chiuso in questa maniera :
data1.recordset.close
data2.recordset.close
non basta ?
Come faccio a chiudere l'oggetto database ?
Non e' sufficente chiudere i controlli data ?
Ciao
Aldo

 Io le ho cercate nella guida in linea, ma non le ho trovate.
Su MSDN, come ti e' gia' stato suggerito.
Ciao.

 tutti i recordset aperti, ma non funziona.
Ho letto in un altro tuo post che utilizzi DAO, e qui sono
particolarmente ignorante (non l'ho mai utilizzato), credo che altri
ti possano aiutare maggiormente.
Ciao.

 ti possano aiutare maggiormente.
Ok... grazie lo stesso !
(Mi sa che migrero' velocemente verso DAO...... !!!)
:-)
Ciao

 ha scritto nel messaggio
news:5aN07.3717$D03.1...@news.infostrada.it...

cosě chiudi i _Recordset_ dei controlli Data, non il DB  :)
io farei:
With Data1
    .Recordset.Close
    Set .Recordset = Nothing
    .Database.Close
    Set .Database = Nothing
End With
(anche per l'altro)
Prova, facci sapere..
Faber

 End With
Ho provato come mi hai consigliato.....
Mi viene segnalato un utilizzo non valido di proprerty sulla riga : "Set
.Database = Nothing"
Allora ho provato ad eliminare quella riga e .....
errore : "Variabile oggetto o variabile del blocco With non impostata"
sulla riga : ".Database.Close"
Ho pensato che il problema fosse dato dal fatto che gli oggetti recordset ed
il db non erano stati creati da codice, ma direttamente utilizzando il
controllo data.
Ho provato , quindi , ad eliminare le righe : "Set .recordset = nothing" e
"Set .database = nothing" per vedere che succedeva.
Con questa modifica non viene segnalato nessun errore ed il floppy si vede
che lavora come se stesse copiando ma, poi, il database rimane invariato.
Sembra proprio che non permetta di sovrascriverlo ..... boh ?!?!?
Inizio a non capirci piu' un'acca !!!
Alla prossima.
Ciao
Aldo
P.S.
Sembra quasi che siamo in chat, piuttosto che in un ng !
:-)