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

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

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

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

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

通常,您必须将要复制的项目设置为bin文件夹。 右键单击解决方案资源管理器/导航器,选择属性并设置“复制到输出目录”。 希望这会奏效

为什么不使用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返回应用程序所在的当前路径。

 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 部署时工作。 更好的是,将文件作为资源嵌入到可执行文件中,以实现更清晰的部署。

你可以用这个:

 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")); 

使用Server.MapPath("/path/to/file")