我发现了一些相关的问题,但他们并没有那么好用。图像名称是修改后的GUID,如3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0
,但扩展名未知(.jpg,.gif,.. iec)。 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"));
然后开始发出此错误这不是&一旦网站启动,这似乎是一个永久的解决方案。System.ArgumentException: Second path fragment must not be a drive or UNC name.
,这似乎是来自有驱动器的路径" C:"
实际路径为C:\Website\Name\Images\3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0.jpg
谢谢!
答案 0 :(得分:1)
您已使用filePath
作为GetFiles
的第一个参数,只需使用通配符并使用一个参数调用GetFiles
的重载。
filePath.GetFiles("_0.*");
答案 1 :(得分:1)
问题在于您获得了“{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.*");