我正在使用ASP.NET 4.5
C#
。
我已经为我的网络应用程序中的文件夹创建了一个web API
点,以获取一些共享资源。现在,我想从web-api调用指向的目录中检索文件列表。
例如,我的Web应用程序驻留在我的本地硬盘驱动器的F:\Projects\Web1
目录中。我在C:\SharedRes\images
目录中放置了一些图像。我创建了一个web-api
来从这个共享目录中获取图像。对于例如http://localhost/api/images/a.jpg
将从a.jpg
目录中获取C:\SharedRes\images
。它工作正常,但每当我打电话给C:\SharedRes\images
web-api
时,我想从http://localhost/api/images
获取文件列表。
我试过以下:
DirectoryInfo directoryInfo = new DirectoryInfo(HttpContext.Current.Server.MapPath("http://localhost/api/images"));
FileInfo[] file = directoryInfo.GetFiles().Where(f => f.Extension == (".bmp") || f.Extension == (".jpg") || f.Extension == (".png") || f.Extension == (".TIFF") || f.Extension == (".gif")).ToArray();
但它会导致URI format not supported
错误。
如果有任何解决方案,请告诉我。
答案 0 :(得分:1)
HttpServerUtility.MapPath方法获取虚拟路径作为参数。
您应该使用HttpContext.Current.Server.MapPath("/api/images")
答案 1 :(得分:1)
您只需使用Directory
类及其GetFiles
方法即可。以下代码用于获取C:\SharedRes\images\
目录中的所有文件:
string[] _Files = Directory.GetFiles(@"C:\SharedRes\images\");
if (_Files != null && _Files.Count() > 0)
{
FileInfo _file;
string _fileName="";
foreach (string file in _Files)
{
_file = new FileInfo(file);
_fileName = _fileName + @"<br/>" + _file.Name;
}
Response.Write(_fileName);