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 ?
@++++++![]()
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 ?
@++++++![]()
Il faut essayer de l'ouvrir en lecture en mode exclusif :
Par contre, pour connaitre le processus... ça devient plus complexe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Des fonctions "Win32 natives" ? pire
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
Partager