如何从web应用程序外部的web URL获取文件列表

本文关键字:web 获取 URL 文件 列表 外部 应用程序 | 更新日期: 2023-09-27 17:58:17

我将ASP.NET 4.5C#一起使用。

我创建了一个web API,它指向我的web应用程序中的文件夹,以获得一些共享资源。现在,我想从webapi调用所指向的目录中检索文件列表

例如,我的web应用程序位于本地硬盘的F:'Projects'Web1目录中。我已经在C:'SharedRes'images目录中放置了一些图像。我已经创建了一个web-api,它从这个共享目录中获取图像。例如,http://localhost/api/images/a.jpg将从C:'SharedRes'images目录中获取a.jpg。它工作正常,但每当我像http://localhost/api/images一样调用web-api时,我都想从C:'SharedRes'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的错误。

如果有任何解决方案,请告诉我。

如何从web应用程序外部的web URL获取文件列表

HttpServerUtility。MapPath方法获取虚拟路径作为参数。

您应该使用HttpContext.Current.Server.MapPath("/api/images")

您可以简单地将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);