C#.NET列出远程文件的内容

时间:2020-03-05 18:40:09  来源:igfitidea点击:

.NET是否可以在远程位置(如URL)上列出文件? System.IO类的工作方式几乎相同。我需要的只是远程服务器上图像的URL。

解决方案

回答

简短答案:否,除非我们对该Web服务器有更多控制权

长答案:这是可能的解决方案...

  • 我们将需要服务器端脚本,该脚本将在本地执行并以我们首选的格式输出此列表。
  • 大多数Web服务器都实现默认的文件浏览页面,因此从理论上讲我们可以解析这些页面,但是即使在同一Web服务器的不同版本之间,此解决方案也将非常脆弱且不十分可移植。
  • 如果我们具有FTP访问权限...

回答

Is it possible in .NET to list files on a remote location like an URL?

我们应该指定我们正在谈论的协议。

对于HTTP,lubos hasko提供了答案:否。 HTTP没有文件的概念;仅资源。如果我们可以控制Web服务器,则可以要求它提供目录列表,或者更好的是,我们可以编写代码来为我们列出服务器端。没有这种控制,我们就必须依靠服务器来提供列表,其中1)出于安全原因可能被禁用,2)格式不规范,3)就像lubos所说的那样,很容易解析("刮")。

如果意思是/如果服务器提供了用于文件传输的协议(例如FTP,SMB / CIFS等),它将容易得多。例如,对于FTP,我们需要研究WebRequestMethods.Ftp.ListDirectoryDe​​tails。