获得物理路径

时间:2010-03-17 12:48:43

标签: c#

我必须从文件夹中获取所有文件,而我正在使用GetFiles()函数

string[] dirImages = Directory.GetFiles(strPathYearImages + intYear , "*.png");

其中strPathYearImages =“Images \ Holiday \ 2010 \”

但是当我写出像

这样的整个路径时
string[] dirImages = Directory.GetFiles(@"E:\IWP\Images\Holiday\"+ intYear , "*.png");

我得到了所需的结果。

如何解决这个问题?我不想使用整个路径。 帮助我。

此致 Jigar< 3

5 个答案:

答案 0 :(得分:3)

GetFiles()的文档说:

  

允许路径参数   指定相对或绝对路径   信息。 相对路径信息   被解释为相对于   当前工作目录

因此,在尝试使用相对路径(例如E:\ IWP)之前,您需要确保正确设置当前工作目录:

GetCurrentDirectory

SetCurrentDirectory

答案 1 :(得分:3)

使用Application.StartupPath获取运行可执行文件的位置。从那里你需要知道images目录相对于该目录的位置。唯一的另一种选择是绝对路径。怎么会知道在哪里看?

您还可以尝试使用System.IO.Path方法来提供帮助 - 尤其是在组合路径字符串时,还可以为您提供My Documents,AppData和桌面等特殊文件夹的位置。

答案 2 :(得分:2)

也许是因为你是从VS内部运行的。您的可执行文件位于ProjectName \ bin \ Debug中,因此它查找ProjectName \ bin \ Debug \ Images,这显然不存在。

答案 3 :(得分:1)

问题是第一个片段尝试在当前路径下获取图像。所以你可以告诉图像路径相对于你当前的路径。

答案 4 :(得分:0)

嘿所有,我得到了我的问题的答案。 我只需要写

string [] dirImages = HttpContext.Current.Server.MapPath(strPathImages + intYear,“* .png”);

希望它对所有人都有帮助......