Bonjour,
Je programme en VB.net et j'ai besoin de chercher un fichier particulier (en fait trouver le chemin complet de LibreOffice Writer, fichier swriter.exe).
Voici le code qui s'exécute lorsque mon programme démarre :
Ce code génère une exception UnauthorizedAccessException car je n'ai pas accès au dossier C:\program Files\winows nt\Accessoires.
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 Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Dim exe_lo Dim directory = "C:\Program Files\" For Each filename As String In IO.Directory.GetFiles(directory, "*exe", IO.SearchOption.AllDirectories) Dim fName As String = IO.Path.GetFileName(filename) If fName = "swriter.exe" Then exe_lo = filename MsgBox("OK") End If Next End Sub
Le code est fonctionnel si je mets Dim directory = "C:\Program Files\LibreOffice 5"
Suivant les PC sur lesquels le programme sera exécuté, ça peut être LibreOffice 4 ou 5 et pourquoi pas installé dans un autre chemin.
Comment dire au programme de ne pas crier ou d'esquiver les dossiers dont je n'ai pas les droits ?
J'ai tenté de mettre On Error Resume Next en vain.
J'aurais bien essayé avec un Try/Catch, sauf que l'exception se passe dans le For Each.
A moins qu'il existe une autre manière de trouver ce fichier "swriter.exe" ?
Merci
Partager