Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中使用GetFiles()时如何定位相对文件路径?_C#_Asp.net_Visual Studio 2015_Path - Fatal编程技术网

在C#中使用GetFiles()时如何定位相对文件路径?

在C#中使用GetFiles()时如何定位相对文件路径?,c#,asp.net,visual-studio-2015,path,C#,Asp.net,Visual Studio 2015,Path,我发现了一些相关的问题,但它们没有那么有效。映像名称是一个经过修改的GUID,如3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0,但扩展名未知(.jpg、.gif,…等)。GUID将来自gridview,因此它不是静态字符串。下面是我所拥有的,但我很难找到正确的工作路径 string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`; DirectoryInfo filePath = new Direc

我发现了一些相关的问题,但它们没有那么有效。映像名称是一个经过修改的GUID,如
3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0
,但扩展名未知(.jpg、.gif,…等)。GUID将来自gridview,因此它不是静态字符串。下面是我所拥有的,但我很难找到正确的工作路径

    string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`;
    DirectoryInfo filePath = new DirectoryInfo(@"/Images");
    MessageBox.Show(filePath.ToString());
    FileInfo[] fileArray = filePath.GetFiles(fileName + "_0.*");
目录无效时不断出现问题。当前文件存储在我的c:驱动器上

如何在不硬编码的情况下获得相对路径?我使用的是DirectoryInfo(Server.MapPath(“Images”)暂时工作,然后开始出现此错误。ArgumentException:第二个路径片段不能是驱动器或UNC名称。似乎来自具有驱动器“C”的路径:但一旦站点启动,这似乎不是永久解决方案

实际路径是
C:\Website\Name\Images\3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0.jpg


谢谢

您使用了
filePath
作为
GetFiles
的第一个参数,只需使用通配符并使用一个参数调用
GetFiles
的重载即可

filePath.GetFiles("_0.*");

您使用了
filePath
作为
GetFiles
的第一个参数,只需使用通配符并使用一个参数调用
GetFiles
的重载

filePath.GetFiles("_0.*");

问题是,您正在为“C:\Images”获取
DirectoryInfo

您想使用
Server.MapPath
获取网站中文件夹的物理路径(可以是任何驱动器上的任何位置)

使用
~
意味着从正在运行的网站的根目录开始

因此,这应该可以做到:

string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`;
DirectoryInfo filePath = new DirectoryInfo(Server.MapPath("~/Images"));
FileInfo[] fileArray = filePath.GetFiles(fileName + "_0.*");

问题是,您正在为“C:\Images”获取
DirectoryInfo

您想使用
Server.MapPath
获取网站中文件夹的物理路径(可以是任何驱动器上的任何位置)

使用
~
意味着从正在运行的网站的根目录开始

因此,这应该可以做到:

string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`;
DirectoryInfo filePath = new DirectoryInfo(Server.MapPath("~/Images"));
FileInfo[] fileArray = filePath.GetFiles(fileName + "_0.*");

很抱歉,这是一个输入错误,应该是
fileName+“\u 0.*”
我将修复我问题中的代码。它确实修复了我遇到的部分错误。文件路径仍有问题。@MuffinMan-更新了答案以反映问题-检索到了错误的路径。希望可以解决。很抱歉,这是一个输入错误,应该是
fileName+“\u 0.*”
我会解决问题中的代码。它确实修复了我遇到的部分错误。文件路径仍有问题。@MuffinMan-更新了答案以反映问题-检索到了错误的路径。希望可以解决。抱歉,这是一个输入错误,应该是
fileName+“\u 0.*”
我将修复我问题中的代码。抱歉,这是一个输入错误,应该是
fileName+“\u 0.*”
我将修复我问题中的代码。