Vai al contenuto
PLC Forum


copia di alcuni file - e se sono in uso ???


Messaggi consigliati

Inserito:

ciao,

dovrei eseguire una copia di alcuni file dalla cartella originale ad una cartella di backup.

Per evitare di fare la copia dei file inutilmente ho intenzione di vedere se il file è stato modificato o meno diciamo ogni 30 secondi ( tanto è un operazione che richiede poco tempo ) poi nel caso in cui il/i file siano stati modificati fado ad eseguire una copia.

La domanda è se nel momento in cui vado a copiare il file il file stesso è utilizzato da un'altra applicazione che a sua volta va a modificare il file cosa succede ? Mi fa una copia del file senza la modifica o mi restituisce un errore ??

Il programmino ho intensione di farlo in vb...

Grazie a tutti.


Inserita:

Di che genere di file si tratta? Alcuni software non consentono di aprire il file da più di una applicazione per volta, ma altri sì, quindi è necessaria qualche altra informazione per risponderti.

Se come penso ti riferisci a un file di solo testo (ASCII, per esempio) e a VisualBasic, allora credo che la cosa sia possibile (almeno, io l'ho realizzata, perché il file aperto comunque è in RAM e sul disco vi è la copia originale e vi registro tutte le ulteriori copie che voglio)

Inserita:

è un file con estensione .STP ma altro non è che un file di testo perché si può aprire con wordpad, quindi se il programma prende il file lo apre e lo inizia a modificare ed io nel frattempo faccio la copia del file in teoria copio il file originale ( quello senza modifiche ) giusto ?

Grazie.

Inserita:

Ma se il tuo programma è in VisualBasic come hai scritto, perchè i salvataggi periodici e le visualizzazioni non le inserisci nel programma stesso? Ti eviti qualche problema e pure eventuali sorprese che il programmatore, se altra persona, possa aver inserito, assegnando tu le giuste priorità tra scrittura e lettura dei dati.

Meglio comunque fare la copia subito, poi visualizzare la copia e decidere se tenerla, oppure no, almeno i rischi di sovrapposizioni tra lettura e scrittura sono ridotti al minimo.

Inserita:

no no,

mi sono espresso male....

il funzionamento è questo:

c'è un software principale che ha un determinato compito e durante il suo funzionamento va ad aggiornare questi file di testo.

Io ho la necessità di eseguire una copia di questi file visto che il programma principale NON ha questa funzione/possibilità così mi volevo fare un semplice prg in vb che mi esegue la copia.

Il problema è che potrebbe capitare che al momento che il prg fatto da me va a fare la copia trovi il file da copiare in uso, aperto per la modifica dal progrmma principale.

Che succede ? Io credo che se il file è ancora in uso dal programma principale mi fa una copia del file NON modificato.. no ? Che ne dici ?

Grazie.

Inserita:

Bisognerebbe capire come funziona il tuo software (quale?) che scrive su quel file.

Per principio quando programmo accetto di perdere un po' di tempo e scelgo una delle due strade:

o copio il file originale e lavoro sulla copia aperta, salvando periodicamente sul file principale;

o apro il file originale solo per scrivere (o leggere) il dato che mi interessa e poi lo richiudo immediatamente (in una frazione di secondo).

Se malauguratamente capita che il tuo software chieda l'accesso al file in quella frazione di secondo in cui lo sta usando il mio programma, semplicemente vieni messo in coda e ti beccherai il mio file dopo che l'avrò modificato tongue.gif

Se invece sei tu che l'hai già aperto, allora sarò io ad attendere e ti perderai quello che dopo di te vi andrò a scrivere.

Il discorso è diverso se il file è condiviso, ma qui subentrano altri fattori e altro tipo di programmazione.

Inserita:

il software è un software che gestisce una macchina utensile, e il file in questione è il file utilizzato dalla macchina stessa per tener traccia della tabella utensili...

comunque in entrambe i casi mi sembra di capire che nessuno dei 2 software va in errore ed il tutto è trasparente all'utente finale giusto ??

Grazie ..

Inserita:

Se il software è stato progettato come faccio io non dovresti avere problemi, se non quello di provvedere anche tu, col tuo software per copiare, ad aprire e chiudere il file solo per il tempo necessario a fare lo scambio dati.

Inserita:

il mio prg fa solo una copia del file quindi NON lo apro biggrin.gif

Inserita:

Quando copi non puoi fare a meno di aprirlo, anche se per te la cosa è trasparente, perché implicita nel comando (come lo è la chiusura), comunque l'importante è che alla fine ottieni quello che ti serviva.

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...