2011-12-18 56 views
2

我的項目中有一個內容文件夾/Data。當我構建它時,以及當我使用Visual Studio安裝創建器時,這些文件都在那裏。當我運行該程序時,它說它被拒絕訪問這些文件。我如何讓程序訪問該文件?已安裝的wpf應用程序被拒絕訪問數據文件

這些文件與exe文件位於同一目錄中。如果我只是在調試輸出文件夾中運行該文件,那麼只要安裝並運行到程序文件中,它就可以正常運行。

回答

1

在@Lolcoder的答案上進一步擴展。在我的應用程序中,我使用Environment.GetEnvironmentVariable("ALLUSERSPROFILE")並將我的應用程序directorys附加到該目錄。然後我在Windows安裝程序中使用自定義提交操作來運行批處理文件,以將我的文件從程序目錄傳輸到所有用戶目錄。

md "%ALLUSERSPROFILE%\YourApplicationName" 
md "%ALLUSERSPROFILE%\YourApplicationName\Data" 
cacls "%ALLUSERSPROFILE%\YourApplicationName" /E /P BUILTIN\Users:F 
copy "C:\Program Files\YourApplicationName\Data\*.*" "%AllUSERSPROFILE%\YourApplicationName\Data" 

這使我可以擁有非用戶特定的應用程序級別設置。

1

在Windows中,程序無權訪問文件,用戶可以。程序運行時,通常會繼承運行它的用戶的訪問權限。這聽起來像是訪問該文件夾的NTFS權限沒有被安裝正確設置。計算需要哪些訪問權限,即讀/寫並檢查用戶是否在/ data文件夾中擁有這些權限。

如果它在Visual Studio中工作,並且當您調用bin目錄中的.exe時,我猜想在這些文件夾中具有必需的權限,因此它的功能正常。您或用戶可能沒有在程序文件目錄中具有相同的NTFS權限。

另一種可能性是您正在加載的數據文件沒有被安裝程序部署,因此無法加載。

+0

它的部署和在那裏。路徑設置正確。我可以用記事本打開並保存數據文件或單擊它。如何在安裝程序的文件夾中設置權限? – 2011-12-18 23:45:18

+0

如果您有.msi文件,我認爲您可以使用稱爲Orca的工具來編輯.msi,並讓它更改文件夾的權限。 – 2011-12-19 14:18:47

1

你不能在程序文件中存儲數據文件,有一個AppData文件夾。程序文件基本上只是出於安全原因才被讀取。

相關問題