2012-02-07 49 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

相關問題