2

我正在尝试获取 FTP 文件夹中的文件列表。当我在本地运行代码时,它可以工作,但是在部署它时,我开始接收 html 而不是文件名

ArrayList fName = new ArrayList();
try
{
    StringBuilder result = new StringBuilder();

    //create the directory
    FtpWebRequest requestDir =
        (FtpWebRequest) FtpWebRequest.Create(new Uri(directory));
    requestDir.Method = WebRequestMethods.Ftp.ListDirectory;
    requestDir.Credentials = new NetworkCredential(FTP_USER_NAME, FTP_PASSWORD);
    requestDir.UsePassive = true;
    requestDir.UseBinary = true;
    requestDir.KeepAlive = false;
    requestDir.Proxy = null;
    FtpWebResponse response = (FtpWebResponse)requestDir.GetResponse();
    Stream ftpStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(ftpStream, Encoding.ASCII);

    while (!reader.EndOfStream)
    {
        fName.Add(reader.ReadLine().ToString());
    }

    response.Close();
    ftpStream.Close();
    reader.Close();
4

2 回答 2

1

你可以试试GetFileName

Uri uri = new Uri(hreflink);
string filename = Path.GetFileName(uri.LocalPath);
于 2012-10-11T09:34:59.797 回答
1

通过使用 ftp 服务器的 ip 地址而不是名称,我能够以列表格式(而不是 html)访问文件名

IE


ftp://xxx.x.x.xxx/folder_name/

代替


ftp://abc.some_company.com/folder_name/

我将使用更多详细信息编辑此答案。

于 2012-10-17T03:10:44.280 回答