我的文件夾中有兩個圖像文件,我必須在我的程序中調用。我用過:使用文件流從根目錄文件夾讀取文件
AppDomain.curentDomain.baseDirectory + "Path and file name";
但是,這進入我的bin目錄,我不想;我想從根目錄中讀取我的文件夾名稱作爲資源的文件夾,我已經在那裏保存了我的文件並調用圖像,所以請問這是什麼代碼?
如何從Windows窗體應用程序的根目錄讀取數據?
我的文件夾中有兩個圖像文件,我必須在我的程序中調用。我用過:使用文件流從根目錄文件夾讀取文件
AppDomain.curentDomain.baseDirectory + "Path and file name";
但是,這進入我的bin目錄,我不想;我想從根目錄中讀取我的文件夾名稱作爲資源的文件夾,我已經在那裏保存了我的文件並調用圖像,所以請問這是什麼代碼?
如何從Windows窗體應用程序的根目錄讀取數據?
通常,您必須將這些項目設置爲複製到bin文件夾。 右鍵單擊解決方案資源管理器/導航器,選擇屬性並將其設置爲 「複製到輸出目錄」。希望這會起作用
您可以使用此:
System.IO.Path.Combine(Environment.CurrentDirectory, "Path to File")
Environment.CurrentDirectory
會給你,你的應用程序是從運行的路徑。無論它在Visual Studio中運行還是部署應用程序都無關緊要。
使用示例
// Read image1.jpg from application folder, into Image object
Image myImage = Image.FromFile(System.IO.Path.Combine(Environment.CurrentDirectory, "image1.jpg"));
返回絕對路徑到您的文件,但是這將只有,而你在VS的工作,因爲沒有當你部署應用程序BIN \調試工作。
string path = Path.Combine(Application.StartupPath, @"..\..\YourFile.JPG");
FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
Image image = Image.FromStream(stream);
stream.Close();
如果你打算用exe文件一起發送的文件,用鼠標右鍵單擊在解決方案資源管理器中,選擇包括項目,右擊再次,選擇屬性,並設置生成操作:無和複製到輸出目錄:在屬性窗口中複製如果更新,則會在每次構建時將該文件複製到bin \ Debug。然後你可以使用:
string path = Path.Combine(Application.StartupPath, "YourFile.JPG");
將在VS 工作,當你部署。更好的是將文件作爲資源嵌入到可執行文件中,以實現更清晰的部署。
如何使用filestream! – SurajSing
更新了我的回答,祝你好運。 – RollingCog
爲什麼不使用Environment.CurrentDirectory
?
string path = Environment.CurrentDirectory + @"\Image1.jpg";
FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
Image image = Image.FromStream(stream);
stream.Close();
這是一種更好的組合應用程序啓動路徑的方式。 :) Environment.CurrentDirectory
返回您的應用程序所在的當前路徑。
爲什麼不是Path.Combine()? – Casey
使用Server.MapPath("/path/to/file")
AppDomain.curentDomain.baseDirectory 而 Application.startupPath 在我的源代碼的bin/debug目錄 – SurajSing