检查FTP服务器上的目录是否存在。

10

我正在运行一个检查来查看FTP服务器上是否存在一个目录:

    public bool DirectoryExists(string directory)
    {
        bool directoryExists;

        var request = (FtpWebRequest)WebRequest.Create(directory);
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential("user", "pass");

        try
        {
            using (request.GetResponse())
            {
                directoryExists = true;
            }
        }
        catch (WebException)
        {
            directoryExists = false;
        }

        return directoryExists;
    }

在这种情况下:

directory = @"ftp://ftp.example.com/Rubicon";

在我的服务器上,我有一个名为Rubicon1的文件夹。这导致我的检查返回true。我该怎么确保只有完全匹配目录名称时才会失败?


1
你能否获取父级目录下的文件夹列表?也许它是隐藏的。 - ericosg
请查看此链接:https://dev59.com/2HVC5IYBdhLWcg3whRgw#265958。这个推理适用于任何易变资源,其中肯定包括FTP共享。 - Joel Coehoorn
2
我刚刚尝试了我的一个FTP,结果符合预期。这可能又是他们的问题了,不是吗? :) - Cristian Lupascu
@w0lf,谢谢,我知道那个,但是我的陈述表达得很糟糕。 - ericosg
@w0lf:我已经要求我的Web服务器提供商调查此问题,但由于上次的问题,他们更换了FTP服务,并确信一切都按预期工作。就个人而言,我尝试了几个不同的目录名称,如果其中任何一个包含“Rubicon”,则检查通过。 - PiousVenom
显示剩余2条评论
1个回答

6
我通过更改我的目录,成功解决了这个问题: ```html

我通过更改我的目录,成功解决了这个问题:

```
directory = @"ftp://ftp.example.com/Rubicon/";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接