Dans une application C # Winforms, j'utilise System.IO.Diagnostics.Process.start (nom de fichier) pour ouvrir des fichiers. Le type de fichier peut être .doc, .docx, .xls, .xlsx, .csv, .pdf ou .txt. P>
Y a-t-il un moyen de forcer ces fichiers à être ouvert en lecture seule? P>
5 Réponses :
Malheureusement, la manière de faire cela change avec le type de fichier. P>
La meilleure option consiste à vérifier le processstartinfo.verbs Propriété pour un verbe connu pour votre type de fichier. Ceci est typiquement "openasreadonly". Vous pourriez ensuite définir ce verbe et démarrer le processus avec un processstartinfo . P>
juste réaliser - cela ne fonctionne pas pour chaque type de fichier, car il appartient au programme de fournir et de gérer un verbe approprié. P>
processus.Start commence le programme associé à ce fichier. Vous ne pouvez pas vous instruire d'ouvrir le fichier comme en lecture seule, à moins que le programme prend en charge un argument de ligne de commande indiquant qu'il devrait s'ouvrir comme en lecture seule (ou s'il prend en charge le verbe OpenASReadonly). P>
Vous pouvez définir des attributs de fichier sur le fichier pour en lire seulement avant de l'ouvrir, mais je ne pense pas que ce soit ce que vous voulez. p>
dépend de si l'application enregistrée a commutateur / option pour prendre en charge le mode lecture seule. Si tel est le cas, vous pouvez passer dans l'option en lecture seule. Pour votre cas, je ne pense pas que processus.Start peut si aucune option en lecture seule. P>
Vous devez définir les attributs de fichier du fichier avant de démarrer le processus, puis de les remettre lorsque vous l'avez ouvert.
Exemple: P>
var attributes = File.GetAttributes(path); File.SetAttributes(filePath, attributes | FileAttributes.ReadOnly); System.IO.Diagnostics.Process.Start(fileName); File.SetAttributes(filePath, attributes);
Ce n'est en fait pas la même chose que d'ouvrir le fichier en mode lecture seule dans la plupart des logiciels. De nombreux programmes (tels que Word) vous permettent d'ouvrir un fichier en lecture seule sans changer le fichier lui-même. Voir ma réponse pour plus de détails.
@Reed Ouais j'ai lu votre réponse avant d'ajouter celui-ci. J'ai ajouté cela en raison de la variété des extensions de fichier que l'OP a indiqué. Je pensais que cela serait plus une "garantie de ne pas gérer avec le fichier" réponse.
Pouvez-vous copier le fichier sur un emplacement temporaire, puis utiliser le fichier temporaire pour lancer le programme? p>
Ensuite, vous pouvez surveiller le processus et sur sa sortie, supprimez le fichier Temp? p>