Newsgroup: it.comp.lang.visual-basic
Titolo: Function CopyFile e W7

Res = CopyFile(App.Path & "\baby.gif", App.Path & "\aaacopy.gif", False)
La funzione sopra fallisce con Windows 7, mi da res diverso da 1.
Qualche idea senza passare alla libreria FSO?
-- 
Greg 

 Qualche idea senza passare alla libreria FSO?
Ho un deja vu... comunque, io uso le funzioni native e mi ci trovo
bene, in questo caso FileCopy.
Bye, G.

 bene, in questo caso FileCopy.
Lo so Paperino, e concordo,  ma se il file � aperto la nativa fallisce.
-- 
Greg 

"greg" ha scritto

Il che � esattamente quello che deve succedere.
Se il file � aperto "normalmente", lo copia senza problemi.
Se � aperto in modalit� esclusiva da un altro programma, � giusto
che non lo copi perch� non sai cosa c'� dentro... il programma
che lo ha aperto potrebbe volerci scrivere dentro proprio mentre
tu lo copi, e il file copiato ti si incasinerebbe. Se un programma
apre un file in modalit� esclusiva ha un buon motivo per farlo,
di solito. In quel caso l'utente va avvisato, se necessario, e se
si tratta di un gruppo di file la copia continua col prossimo.
O c'� qualcosa che non so ?
Cos'� che stai cercando di fare ?
Bye, G. 

 La funzione sopra fallisce con Windows 7, mi da res diverso da 1.
Riprendendo comunque la domanda originale, se l'API ti d�
un errore, la maniera standard di trattare il problema � controllare
con GetLastError (e SysErrorMessage) che errore � e perch�
te l'ha dato. Trattandosi di W7 ipotizzo che si tratti di un problema
di permessi, ma � un colpo completamente alla cieca :-).
Tra l'altro, da W2K server e XP in su esiste anche la shFileOperation
e da Vista in su la IFileOperation, ma non ho nessuna esperienza
in merito. Per� "Zio" GbC, se non ricordo male, ha postato pi�
volte qualcosa sulla shFileOperation.
Bye, G. 

 Bye, G.
Forse sono io che non so qualche cosa, domani verifico se mi copia un file 
aperto e condiviso.
Cosa devo fare? Una banale copia di backup del database ad intervali orari, 
anche se questo � aperto.
Per� mi piacerebbe capire ugualmente perche l'api una volta funzia e una no 
sotto win7.
Con vista e xp non mi era mai successo.
-- 
Greg 

 Bye, G.
eccolo:
http://www.gbcdepot.com/free/vb_esempi/samples_files_SHFileOperation.zip
adesso ci guardo
-- 
Greg 

 anche se questo � aperto.
Insomma, cerchi rogne :-D
E' una di quelle cose che io non farei mai, in nessun caso.
In linea *molto* generale il metodo "pulito" per farlo � dall'interno
del DB manager, qualunque esso sia, che provvede ad una
chiusura temporanea del/dei file, se necessario preceduti
da una commit di tutte le transazioni in atto, e mettendo in
attesa gli eventuali utenti attivi.
Poi magari con Access � un altro discorso, ma i file di Access
sono gi� abbastanza ballerini per conto loro, senza andarli
pure a sfruculiare. Ritrovarsi un backup, su cui uno fa affidamento,
e scoprire dopo il restore che non funziona, non � il massimo
della vita.
E, s�, lo dico per esperienza personale :-(.
Dall'esterno, beh... ci sono delle applicazioni che ci provano,
ma dichiarano esplicitamente di non dare garanzie sul risultato.
Qui c'� qualche info in merito da una ditta che ha proprio
un prodotto del genere, sul mercato dal '95:
http://www.ultrabac.com/techsupport/50white-papers/lfb_api.asp
Bye, G. 

 aperto.
l'unica soluzione, sostenibile, ï¿œ shadow copy, che volendo puoi 
pilotare anche da codice.
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it

 attesa gli eventuali utenti attivi.
Hai perfettamente ragione, non c'� niente di meglio che un Compactdatabase.
Il copyfile che  fa la copia anche mentre un campo � scritto solo a met�, ma 
al momento del restore il db potrebbe essere illegibile....
Grazie ancora
-- 
Greg 

 da codice.
Ma l'applicazione deve supportarlo, AFAIR... dico bene ?
Bye, G. 

 Bye, G.


 al momento del restore il db potrebbe essere illegibile....
Io i DB col copia/incolla li prendo quando mi servono in assistenza per
vedere una cosa, una percentuale non rara delle volte se ci stanno
lavorando � corrotto.
Per cui usare sempre strumenti di backup/restore del DB stesso, che
lavorano di norma mentre la gente ci lavora sopra.
Se un backup non dovesse poi funzionare perch� fa parte di quel 5% delle
volte che si corrompe sono cavoli amari.