【问题标题】:How to go about searching a server for a specific file?如何在服务器上搜索特定文件?
【发布时间】:2010-12-18 23:10:15
【问题描述】:

我正在尝试在网站(站点/服务器)上查找特定文件,该文件可能具有不同的扩展名,具体取决于服务器。如何确定唯一服务器的扩展名?

示例可能性:

website.com/list.bz2

--或--

website.com/list.gz

【问题讨论】:

  • 真的不知道你在问什么。
  • 这有点像在硬盘上的目录中搜索文件,不知道文件的特定扩展名,只知道名称。
  • 所以您要搜索互联网,寻找特定实体,这样http://foo.com/bar/baz.abc.xyz 就等于ftp://quux.com/baz.abc.txt(提出一个困难的案例)?为什么这个问题被标记为 C# 和 httpwebrequest?看来这里 99% 的工作是如何查询 Google/Baidu/etc。
  • 因为,我想做的,本质上是用csharp应用程序搜索网站的目录,以确定某个文件的存在。有点像在 url 而不是本地文件系统上使用 System.IO.DirectoryInfo()。
  • 您的应用程序是在服务器机器本身上运行,还是从客户端机器上运行?如果是前者,那么你可以这样做 - 枚举 app 目录中的所有文件。如果是后者,对不起,不,(大多数)网站都不是那样工作的。

标签: c# file search url httpwebrequest


【解决方案1】:
using System;
using System.IO;

class App
{
    public static void Main()
    {
        string searchPath = @"c:\";
        string searchPattern = "list.*";

        DirectoryInfo di = new DirectoryInfo(searchPath);
        FileInfo[] files = di.GetFiles(searchPattern, SearchOption.AllDirectories);

        foreach (FileInfo file in files)
            Console.WriteLine(file.FullName);

        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
    }
}

如果您无权访问服务器并且想以匿名客户端的身份搜索它,那么您应该在互联网上搜索google hacking

【讨论】:

  • DirectoryInfo 的 'GetFiles' 方法不支持 URI 格式。
  • 正如我所说,它不能远程工作。你需要一个爬虫(网络蜘蛛)。编写爬虫程序的难点在于查找文件,因为大多数服务器不允许目录浏览。在现实世界中,爬虫会跟踪页面中的链接并找到其他页面。所以对于非链接页面,你可以猜到文件名。
猜你喜欢
  • 2017-08-15
  • 2015-03-07
  • 2018-08-03
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多