使用filestream从根目录文件夹中读取文件

时间:2012-09-02 12:53:36

标签: c# .net file file-io

我的文件夹中有两个图像文件,我必须在程序中调用。我用过:

AppDomain.curentDomain.baseDirectory + "Path and file name";

但这会进入我不想要的bin目录;我想从根目录中读取文件夹,其中我的文件夹名称作为资源我已将文件保存在那里并调用图像,那么请问这是什么代码?

如何从Windows窗体应用程序的根目录中读取?

5 个答案:

答案 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")