2015-11-10 32 views
1

我正計劃在我的C#應用​​程序中創建一個名爲Data的文件夾,並在程序啓動時重用。我把它放在我的Visual Studio解決方案的根,導致它是在那裏你看到下面我在哪裏可以放置在我的C#應用​​程序中使用的文件夾?

MyProject (File folder) 
    bin (File folder) 
     Debug (File folder) 
      MyProject (Application) 
      . 
      . 
    Data 
    obj 
      . 
      . 
    . 
    . 

項目建成後...但我猜我希望它在實際應用中, 對?或者我的應用程序中該文件夾的「創建如果不存在」對我來說是否合適?對不起,如果這被認爲是一個主觀問題。

+0

因此,它更多的是良好的設計問題。我會說這取決於。從它看起來像在解決方案資源管理器中創建的數據文件夾。這意味着在這種情況下,你只需要有源代碼。從你提到的你想讓它被應用程序使用? – Thomas

+0

@Thomas沒有源代碼在裏面。該應用程序僅將其用作文件庫 –

+0

tnx。創建了一個答案(幾乎已經猜到了)。通常該文件夾不會自動複製。如果您希望將它複製到解決方案中(如果通過解決方案資源管理器存在針對文件夾的另一個選項,我不知道它),則需要將文件放入其中,並將複製永久屬性設置爲true。把這些信息也放入答案 – Thomas

回答

2

1)您可以在程序開始時檢查它是否存在,那麼您可以創建它。 右鍵單擊Visual Studio中的SOlution >>添加新項目>>在其他項目類型下>>選擇>>安裝和部署>> Visual Studio安裝程序>>設置項目。

安裝項目在許多情況下很重要,當您需要對首次安裝進行任何更改或需要修改註冊表時,需要首次複製某些數據文件夾或其他設置。

2)創建一個安裝項目,並在安裝項目中創建該數據文件夾,該文件夾將在用戶安裝應用程序時創建。

我寧願使用這兩個選項以避免將來出現任何問題。

+0

什麼是設置項目? –

+0

在visual studio中右鍵點擊你的SOlution >>添加新項目>>在其他項目類型下>>選擇>>安裝和部署>> Visual Studio安裝程序>>設置項目。 –

1

從您的示例中看起來像在應用程序/解決方案資源管理器中創建的數據文件夾。到目前爲止這麼好,但它永遠不會在你的項目中創建。

如果您希望它與您的應用程序位於相同的目錄中,您有2個選項。

  1. 您可以創建任何你想要在Solution Explorer中的屬性
  2. 是手動創建您的程序中您的文件夾放了進去以後,說「拷貝總是」 .txt文件或。您的程序的基本位置通常是AppDomain.CurrentDomain.BaseDirectory。因此你可以使用Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + folderName)

對於2,這可以在程序的每次運行中完成(如果該目錄還不存在,或者如果您有特殊的安裝程序,則在程序的設置上)。

據我所知,所有這些變種都是合法的,並且取決於您的確切用例和個人品味。

1

我猜我想要它在實際應用程序的位置,對嗎?

不!假設您最終將該程序捆綁到一個安裝程序中,並將其放入它自己的Program Files文件夾中。 標準用戶對Program Files文件夾下的任何內容都沒有寫入權限!。您只需強制您的程序在每次運行時都要求管理員權限。

相反,你需要把你的數據文件夾中的應用程序數據的特殊文件夾:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 
+0

你確定那裏的管理員權限嗎?我的意思是如果你把東西直接放在程序文件夾中...是的。但是我不知道你需要管理員權限,如果你把東西放到程序文件夾的子文件夾(因此application.exe所在的文件夾)。 – Thomas

+0

是的,我很確定。除非您構建自己的自定義安裝程序操作來更改文件夾的權限,否則應用程序的程序文件文件夾仍需要管理員權限才能進行寫入訪問。 –

相關問題