C# Ouvrir le fichier sous le chemin spécifié
/// <summary> /// 打开指定路径下文件,比如:Word、Excel、Dll、图片等都可以(前提是你已经安装打开程序的对应软件) /// </summary> /// <param name="NewFileName">eg:D:\Test\模版8.doc</param> /// <param name="NewFileName">eg:D:\Test\模版8.doc</param> private void OpenFile(string NewFileName) { Process process = new Process(); ProcessStartInfo processStartInfo = new ProcessStartInfo(NewFileName); process.StartInfo = processStartInfo; # region 下面这段被注释掉代码(可以用来全屏打开代码) ////建立新的系统进程 //System.Diagnostics.Process process = new System.Diagnostics.Process(); ////设置文件名,此处为图片的真实路径+文件名(需要有后缀) //process.StartInfo.FileName = NewFileName; ////此为关键部分。设置进程运行参数,此时为最大化窗口显示图片。 //process.StartInfo.Arguments = "rundll32.exe C://WINDOWS//system32//shimgvw.dll,ImageView_Fullscreen"; //// 此项为是否使用Shell执行程序,因系统默认为true,此项也可不设,但若设置必须为true //process.StartInfo.UseShellExecute = true; #endregion try { process.Start(); try { // process.WaitForExit(); } catch (Exception ex) { throw ex; } } catch (Exception ex) { throw ex; } finally { try { if (process != null) { process.Close(); process = null; } } catch { } } }
Aujourd'hui, lors du test, je ne sais pas qui a ajouté cette phrase après la phrase
process.StartInfo = processStartInfo;
:
process.StartInfo.UseShellExecute = false;
Je n'y ai pas prêté attention au début, puis j'ai continué à signaler l'erreur suivante :
The specified executable is not a validapplication for this OS platform.
Explication :
Propriété ProcessStartInfo.UseShellExecute : Get ou définissez une valeur qui indique s'il faut utiliser le shell du système d'exploitation pour démarrer le processus.
Valeur de l'attribut :
Vrai si vous souhaitez utiliser un shell au démarrage du processus ; sinon, créez le processus directement à partir du fichier exécutable. La valeur par défaut est vrai. La définition de la propriété sur false redirige les flux d’entrée, de sortie et d’erreur. Sinon ça ne marchera pas.
Lorsque vous utilisez le shell du système d'exploitation pour démarrer un processus, vous pouvez utiliser le composant Processus pour démarrer n'importe quel document (qui peut être n'importe quel type de fichier enregistré associé à un fichier exécutable avec une action d'ouverture par défaut) et effectuer des opérations sur le fichier. (comme l'impression) . Si UseShellExecute est faux, l'exécutable ne peut être lancé qu'à l'aide du composant Process.
Ce qui précède est le contenu de C# ouvrant le fichier sous le chemin spécifié. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !