我有两个图像文件在我的文件夹中,我需要在程序中调用它们。我使用了:
AppDomain.curentDomain.baseDirectory + "Path and file name";
但是这会把我的文件放在bin目录中,我不想要那样做;我想从根目录中读取名为resource的文件夹,在那里保存我的文件并调用图像,请问如何编写代码?
在Windows Form应用程序中,我该如何从根目录读取文件?
我有两个图像文件在我的文件夹中,我需要在程序中调用它们。我使用了:
AppDomain.curentDomain.baseDirectory + "Path and file name";
但是这会把我的文件放在bin目录中,我不想要那样做;我想从根目录中读取名为resource的文件夹,在那里保存我的文件并调用图像,请问如何编写代码?
在Windows Form应用程序中,我该如何从根目录读取文件?
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(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"));
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();
string path = Path.Combine(Application.StartupPath, "YourFile.JPG");
这将在VS中工作,并且在部署时也能正常运行。更好的做法是将文件嵌入到可执行文件中,以实现更干净的部署。
使用Server.MapPath("/path/to/file")