2012-02-07 38 views
2

C#.net Framework 4.0 有没有简单的方法来检查您是否有权运行文件?如何检查您是否有权运行exe文件

之前,我这样做:

//e.g. Press a button 
.... 
string exePath = "D:\something\something.exe"; 
Process.Start(exePath); 

我想检查用户是否具有运行该文件的权利? 当我进行函数调用Process.Start时,Windows弹出一个消息框,并说我没有权限运行此应用程序,并且此应用程序是“D:\ something \ something.dat”而不是.exe?

回答

-1

尝试try catch周边Proccess.Start

//e.g. Press a button 
.... 
    string exePath = "D:\something\something.exe"; 
    try 
    { 
     Process.Start(exePath); 
    } catch (Exception e) { 
     // No permissions or file not found? 
    } 

那将做的工作。

+3

捕获特定的异常会更好。 – ChrisF 2012-02-07 12:02:40

+0

另一个问题是,当我这样做:Process.Start(exePath) 一个messageBox出现,并说我没有什么权利.. 我问的原因是因为我需要显示一个菜单与用户可以打开的文件。排除用户没有权限打开的文件会很好。 – 2012-02-07 12:10:58

1

如何检查您是否有权限运行exe文件?

EAFP:请求宽恕比获得许可更容易

所以,你可以用try/catch块围绕代码:

try { 
    Process.Start(path); 
} catch (Win32Exception ex) { 
    // ... 
} 

,您可以使用Win32Exception.NativeErrorCode访问与此异常关联的错误代码的数字表示。请参考Win32 System Error Codes

相关问题