【问题标题】:accessing File within directory and subdirectory giving me error -- URI formats are not supported访问目录和子目录中的文件给我错误 - 不支持 URI 格式
【发布时间】:2014-02-18 14:56:14
【问题描述】:

我正在尝试从网页中获取目录和子目录中的文件。我不知道这是否是我正在使用的正确想法。如果不能,请告诉我如何访问 apache 服务器上 IP 地址上的文件和文件夹。

下面的代码显示“不支持 URI 格式”。错误。

我不想使用本地目录,因为我必须从该地址访问文件(apache 服务器)

public static DataTable search_method(string searchkeyword)
    {
        string path = "http://192.168.2.10/mywebsite/";
        DataTable Table = new DataTable();
        Table.Columns.Add("AnchorText");
        Table.Columns.Add("dt");
        DataRow dr = null;
       foreach (string file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))
        {
            if (file.Contains(searchkeyword))
            {
                    string AnchorText = Path.GetFileNameWithoutExtension(file);
                    DateTime dt = File.GetLastWriteTime(path);
                    dr = Table.NewRow();
                    dr[1] = AnchorText;
                    dr[2] = dt;
                    Table.Rows.Add(dr);
                }
        }
        return Table;

    }

【问题讨论】:

    标签: c# asp.net networking filesystems


    【解决方案1】:

    错误告诉你什么地方出了问题,你不能这样做。

    如果您查看Directory.GetFiles Method,您会看到第一个参数是path,即要搜索的目录。该目录是您服务器上的路径,而不是 URI,因此,URI formats are not supported。您可以使用它来搜索您服务器上的目录,而不是您只能通过 URL 访问的其他人的网络服务器。

    您可以使用WebRequest 向网络服务器发出请求,但这类似于在浏览器中查看页面,而不是在GetFiles 中搜索目录。

    除非他们允许,否则您将无法查看网络服务器目录中的文件列表。如果有,请尝试WebRequest

    【讨论】:

    • 但是我想搜索那个 URI,我该怎么做
    • 网络服务器是否允许目录列表?
    • 它没有,我可以通过其他方式访问文件以提供登录详细信息。我正在访问的这台机器是 LINUX
    • @user3202862 如果他们不允许目录浏览,并且您无法映射驱动器,那么我认为您基本上会被困在抓取该网站。
    • 你能告诉我他们需要在 apache 服务器上进行哪些更改以使我能够访问目录以及我该怎么做。
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2012-04-02
    • 2019-05-10
    • 2019-05-10
    • 2016-08-17
    • 2013-05-19
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多