2012-07-18 67 views
1

在Visual Studio(VB.NET)中,我想打開一個文件並將內容讀入一個字符串。當文件位於磁盤上的已知位置時很容易,因爲您可以將其引用爲C:\ Windows \ foo.txt或其他任何文件。有沒有什麼辦法根據它們在解決方案中的位置來引用文件?例如,MySolution \ MyProject \ MyFolder \ foo.txt。要讀取的文件將是一個SQL文件,因此將不會有任何代碼對象用於處理。是否可以在代碼中引用項目文件?

我使用了一大堆不同的解決方案,它們存儲在磁盤上的不同位置,所以我真的不想直接處理文件系統。有任何想法嗎?

+0

你可以使用應用程序路徑! – undone 2012-07-18 15:53:11

回答

1

如果您轉到解決方案中文件的文件屬性,您會注意到其中一個選項是「複製到輸出目錄」。您需要將其設置爲「始終複製」或「如果更新則複製」。一旦你對所有相關的文件進行了設置並重新構建項目,你會注意到所有這些文件將被複制到bin\Debugbin\Release文件夾中(作爲構建過程的一部分),作爲構建過程的一部分。現在,在您的應用程序中,您可以假定它們將與您的應用程序位於同一目錄中。

+0

謝謝!如果這樣做,它會使寫入SQL查詢變得更好。 – MrEff 2012-07-18 20:13:49

1

Dim s as string = System.IO.Directory.GetCurrentDirectory將返回可執行文件的目錄。 如果您始終通過IDE或build文件夾運行此操作,這將是MySolution/MyProject/bin /(Debug或Release)。 然後System.IO.Directory.GetParent(s)兩次應該得到你的項目文件夾路徑。

+0

我剛要問這個......太糟糕了我只能標記一個答案 – MrEff 2012-07-18 20:14:19

+1

這是一種方法,但由於當前目錄可以更改,所以使用程序集路徑更安全(例如'Assembly.GetEntryAssembly( ).Location')。 – 2012-07-18 20:22:48

相關問題