2011-12-07 93 views
3

如果我將我的應用程序安裝到程序文件中,它是否總是能夠在其安裝目錄中創建和寫入文件?它似乎可以在許多不同版本的Windows中工作,但是在哪些情況下這不起作用?安裝到Program Files的應用程序是否有權修改其文件夾?

主要是我使用這種方法進行日誌記錄。如果這不是正確的方法,是否有更好的登錄地點?

注意:我的安裝程序需要管理員權限才能運行,並授予安裝目錄中所有用戶的完全訪問權限。

回答

4

應用程序不以用戶身份運行,用戶以用戶身份運行。如果您將應用程序安裝到Program Files中,並假設您需要提升權限才能這樣做,那麼當標準用戶運行該應用程序時,那就是需要權限的用戶。

  1. 應用與提升的權限安裝(用戶:admin,例如)
  2. 在AppName的文件夾中的所有權限,很可能是「管理:全面,用戶:讀」
  3. 用戶運行的應用程序,所以不能修改任何文件

在安裝時,安裝人員需要知道其中它自己的文件需要進行寫入標準的用戶,並設置相應的權限。當然,用戶數據應該是而不是無論如何都在Program Files中。這通常是%appdata%和用戶配置文件的目的。

如果您的應用程序擁有globalsettings.ini或其他任何文件,它們位於「Program Files \ YourApp」中,那麼當您具有管理權限時(即在安裝時),您需要爲所有用戶授予寫入權限以訪問該全局設置。 ini文件。或高級用戶。或者一個組。或者任何對您的應用程序正確。

總之,沒有,用戶沒有對ProgFiles的默認寫入訪問權限,他們也不應該。

0

是的,有一定情況下這是行不通的,當你的應用程序在Windows 7上運行,例如,或者如果您的用戶帳戶是一個有限的用戶。

我們總是把我們的日誌文件放在一個臨時目錄或一個特殊的文件夾,比如AppData。

+0

我應該提到,我的安裝程序需要管理員權限才能運行,並授予對安裝目錄的完全訪問權限。這是否繞過這些問題? – dan

+1

當然是的。你剛剛回答了你自己的問題。 「我的應用可以完全訪問每個人」,因此,每個人都可以完全訪問。將數據存儲在Program Files中並不是一個好習慣。 – Cylindric

相關問題