2011-11-16 79 views
1

在我的.net窗口應用程序中,我使用的是xml文件。 但after installing the application通過創建安裝程序,而我正在運行tha t 'Access Denied' to that xml文件消息顯示。'訪問被拒絕'到Windows應用程序中的xml文件

我正在使用System.IO.File做文件操作的方法。

如果任何機構知道解決方案將分享。

+0

哪裏xml文件駐留?在應用程序目錄中? – Yahia

+0

嘗試運行您的程序提升?如果解決了這個問題,您應該將文件存儲在'Program Files'之外的某個位置,在這裏您沒有寫入權限。 (例如用戶的簡檔)。看到這個問題:http://stackoverflow.com/questions/2362946/write-in-programdata-folder-w7-and-vista-net –

+0

@Yahia:是的。在應用程序目錄裏面有一個名爲XMl的文件夾,裏面的文件是這個文件。xml – Nithesh

回答

1

Program Files文件夾的訪問權限有限,可以通過管理員帳戶進行修改。我建議你保存你的xml文件在* C:\ Users \ YourPCName \ AppData \ Local \ YourAppFolder *

這樣你就可以訪問和修改文件

+0

很多程序都不能在Program Files文件夾內部配置/設置文件,這些文件可以在程序中修改嗎? – Jack

+0

那麼這些應用程序開始在管理權限下,爲什麼他們能夠做這些事情。他可以通過強制他的應用程序通過嵌入自定義清單(項目屬性 - >構建 - >清單)在管理員權限下開始。 –

+0

@Jack過去也許 - 但是由於Vista安全性越來越嚴格,程序文件夾內的寫入訪問受到限制... – Yahia

2

到程序目錄的寫訪問已經越來越受到限制(從XP/Vista的),因爲這是一個secruity風險!

我建議有該文件的「基礎版」只讀在你的程序目錄...

在您的應用程序的開始,你檢查它是否存在於ApplicationDataLocalApplicationDataCommonApplicationData - (獲得運行時的實際路徑使用Environment.GetFolderPath)。如果它不存在,則將其複製到那裏 - 在這些位置,您的應用程序默認情況下具有寫權限,不需要管理員權限。

1

我曾經遇到過這個問題,所以我使用了獨立存儲並解決了我的問題。它可能會或可能不適合你根據你的情況的工作性質,但這裏有一個關於如何使用它的快速教程:

http://www.codeproject.com/KB/dotnet/IsolatedStorage.aspx

+0

如果這是適用於您的解決方案,那麼它將使您不必告訴人們必須以管理員身份運行您的應用程序。 –