|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
[VB]Capire se un file è aperto da un'applicazione
Salve a tutti,
ho il seguente problema .... Ho realizzato un'applicazione che appena si accorge della presenza di un file su di una directory specifica comincia ad utilizzarlo per le sue elaborazioni ... Il punto è che se lo copio manualmente in questa directory tutto funziona bene ma se lo uplodo nella stessa directory utilizzando un ftp le cose non vanno bene .... Questo perché l'applicazione accorgendosi del file comincia a processarlo prima ancora che la sessione ftp abbia finito di scaricarlo completamente .... Le soluzioni potrebbero essere due : o applico un ritardo nel processare il file dal momento che comincia la scrittura oppure molto più elegantemente potrei verificare magari con qualche API se il file è aperto in scrittura da qualche altro processo .... Conoscete qualche API a riguardo ? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
UP
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Normalmente, usando CreateFile(...) su un file già aperto da un'altra applicazione GetLastError() ritorna ERROR_SHARING_VIOLATION che su msnd significa
Quote:
![]() |
|
![]() |
![]() |
![]() |
#4 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
il tuo problema (capire se un file è aperto da un altro processo) è molto comune e credo che una soluzione vera e propria in Win32 non ci sia (se ci fosse sarebbe di sicuro qualcosa di poco elegante), perciò devi risolvere in altra maniera, ad esempio processando il file solo quando la sua dimensione raggiunge il valore che dovrebbe avere (che puoi cercare di conoscere in qualche modo), oppure vedendo se il tuo client FTP ha qualche impostazione x cui i files incompleti stanno in una certa dir e vengono spostati in 1 altra quando vengono completati. |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:02.