Salut
Comment peut on verifier si un fichier est deja en cours d utilisation par un processus ? si oui, lequel ? et le user/machine qui l utilise ?
@++++++ :king:
Version imprimable
Salut
Comment peut on verifier si un fichier est deja en cours d utilisation par un processus ? si oui, lequel ? et le user/machine qui l utilise ?
@++++++ :king:
Il faut essayer de l'ouvrir en lecture en mode exclusif :
Par contre, pour connaitre le processus... ça devient plus complexe :aie:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 FileStream fs = null; try { fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None); MessageBox.Show("Le fichier n'est pas ouvert"); } catch(IOException e) { MessageBox.Show("Le fichier est déjà ouvert"); } finally { if (fs != null) fs.Close(); }
Je dois avouer que je n'en ai pas la moindre idée... Ca passe sans doute par des fonctions Win32 natives. Fais un tour sur le forum Windows, tu auras peut-être plus de chance d'avoir une réponse
Des fonctions "Win32 natives" ? pire :aie:
J'avais cherché comment faire et les seules solutions se trouvent au niveau de l'api native (oui, plus bas que toutes ces histoires de .net et win32) et qui sont sujettes à modification pour environ toutes les nouvelles versions de Windows.
Sinon il y a un outil en ligne de commande qui a été fait pour savoir quel processus utilise tel ou tel fichier :
http://technet.microsoft.com/en-us/s.../bb896655.aspx