浩浩 [程序人生]

     时光在一行行代码中悄然流逝。。。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  • FTPFactory.cs原版中的getFileList是使用的NLST命令,只能获取名称列表(包括目录名和文件名)
  • 因为要区分目录名和文件名,修改了getFileList的代码,使用LIST命令,然后解析返回的字符串,分别得到目录列表和文件列表
    但是发现LIST经常出现返回列表不全的情况,解决办法:

    while(true)
    {
        int bytes = cSocket.Receive(buffer, buffer.Length, 0);
        mes += ASCII.GetString(buffer, 0, bytes);
        if(bytes < buffer.Length)
        {
            break;
        }
    }
    改成:
    while(true)
    {
        int bytes = cSocket.Receive(buffer, buffer.Length, 0);
        mes += ASCII.GetString(buffer, 0, bytes);
        if(bytes == 0)
        {
            break;
        }
    }
    因为Receive得到的字节数常常填不满buffer,而实际上还有后续的数据。
posted on 2009-01-08 17:24  paul001  阅读(253)  评论(0编辑  收藏  举报