我的文件夹中有两个图像文件,我必须在程序中调用。我用过:
AppDomain.curentDomain.baseDirectory + "Path and file name";
但这会进入我不想要的bin目录;我想从根目录中读取文件夹,其中我的文件夹名称作为资源我已将文件保存在那里并调用图像,那么请问这是什么代码?
如何从Windows窗体应用程序的根目录中读取?
答案 0 :(得分:5)
为什么不使用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
返回应用程序所在的当前路径。
答案 1 :(得分:2)
通常,您必须将要复制的项目设置为bin文件夹。 右键单击解决方案资源管理器/导航器,选择属性并进行设置 “复制到输出目录”。希望这会起作用
答案 2 :(得分:1)
您可以使用:
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"));
答案 3 :(得分:1)
System.IO.Path.Combine(Application.StartupPath, @"..\..\YourFile.JPG")
返回文件的绝对路径,但是当您在VS中工作时,仅工作,因为在部署应用时没有bin \ Debug。
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 和中使用。更好的是将文件作为资源嵌入到可执行文件中以进行更清洁的部署。
答案 4 :(得分:0)
使用Server.MapPath("/path/to/file")