3

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

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

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

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

4

5 回答 5

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返回您的应用程序所在的当前路径。

于 2012-11-21T04:51:28.943 回答
4

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

于 2012-09-03T10:19:05.250 回答
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"));
于 2012-09-02T12:59:41.597 回答
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 一起发送,请在解决方案资源管理器中右键单击该文件,选择Include in project,再次右键单击,选择属性并设置Build Action : NoneCopy to Output Directory : Copy if newer in the properties窗口,这将在您每次构建时将文件复制到您的 bin\Debug。然后你可以使用:

string path = Path.Combine(Application.StartupPath, "YourFile.JPG");

这将在 VS部署时工作。最好将文件作为资源嵌入到可执行文件中,以便进行更清洁的部署。

于 2012-09-02T14:33:34.000 回答
0

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

于 2017-07-25T20:20:28.077 回答