2011-08-22 31 views
0

請原諒我缺乏C#知識!從最終生產計劃中訪問資源/參考文件?

如果我不知道我的應用程序在硬盤上安裝/存在的位置,如何在運行時訪問所需的文件?另外 - 如何將該文件與我的應用程序分發(即,將其保存在C:\ Program Files \ MyApp \ resouces \ file.ext中)?

背景:

我使用C#.NET的3.5電子表格齒輪。我的程序根據數據庫的內容寫出一系列的excel文件。其中一個要求是頁面設置中的標題要麼需要具有多種顏色/格式的圖像或文本。我已經深入研究了這兩種方法,並沒有發現以編程方式執行此操作的解決方案。我的迴歸是打開一個預先構建好的excel文件,這個文件在頭文件中已經有了logo(你可以在excel中做到這一點),將數據放入excel文件中,並將其保存在用戶指定位置的新名稱下。

我應該尋找資源還是打開預先設置好的模板excel文件?

感謝您的幫助!

回答

0

如果您的應用程序的用戶擁有正確的權限,我會使用Registry對象來查詢註冊表。我可能誤解了你的問題 - 我認爲你正在尋求一種方法來找到應用程序的路徑?

+0

那麼,我正在尋找一種方法來找到一個文件(可靠),我的程序需要給定的程序和文件已分發給許多用戶。 –

+0

所以我誤解了:-)道歉。您可以這樣做:在您的項目中:(1)在解決方案窗格中添加要包含在.Net項目中的文件(2),右鍵單擊添加的文件 - 選擇屬性(3)設置「適當地複製到輸出目錄」選項。這將確保您的文件始終與您的可執行文件在同一個文件夾中。 – Arun

+0

現在我有位於'bin \ Debug \ resources \ file.xls'的文件 - 我通過'string file = @「resources \ file.xls」'來訪問文件。當我將它添加到我的解決方案中時,是否需要在解決方案所在的同一級別創建一個名爲resources的新目錄? –

0

重要的是使相關的文件的名稱,即代替:

C:\Program Files\MyApp\resouces\file.ext 

有:

resouces\file.ext 

,然後有一個試圖打開相關文件的一個小功能到您可以在運行時獲得的可執行路徑。不要根據當前文件夾打開它,因爲它可能與可執行文件路徑不同。

+0

當我將程序分發給其他用戶時,如何確保resources \ file.ext獲取到位?另外 - 從Visual Studio中運行時,我的文件系統上的\ resources \在哪裏?在Debug文件夾下? –

+0

您可以使用安裝程序,如Wix(http://wix.sourceforge.net/),您可以在其中指定安裝過程中放置​​文件的位置。至於運行在調試器中,我提到的那個小函數可以用來查看其他地方,比如說,如果DEBUG被定義了,那麼使用一個像「.. \ .. \」這樣的前綴。 – Skizz

+0

Visual Studio沒有內置安裝程序嗎? –