/// <summary>
 /// 下载文件或文件夹
 /// </summary>
 /// <param name="fileName">要下载的文件名</param>
 /// <param name="savePath">本地存储的完整路径</param>
 /// <param name="dataType">文件名对应的文件类型,主要区分文件夹和文件</param>
 public void Download(string fileName, string savePath, FTPDataType dataType)
 {
     try
     {
         if (dataType == FTPDataType.Directory)
         {
             if (Exist(fileName, FTPDataType.Directory))
             {
                 if (m_ftp.GotoDirectory(fileName))
                 {
                     FileStruct[] dirs = m_ftp.ListDirectories();
                     foreach (FileStruct dir in dirs)
                     {
                         System.IO.Directory.CreateDirectory(savePath + "\\" + dir.Name);
                         Download(dir.Name, savePath + "\\" + dir.Name, FTPDataType.Directory);
                     }
                     FileStruct[] files = m_ftp.ListFiles();
                     foreach (FileStruct file in files)
                     {
                         m_ftp.DownloadFileAsync(file.Name, savePath + "\\" + file.Name);
                     }
                     m_ftp.ComeoutDirectory();
                 }
             }
         }
         else
         {
             m_ftp.DownloadFileAsync(fileName, savePath);
         }
     }
     catch (Exception ex)
     {
         Log.OutputBox(ex);
     }
 }
        private bool Exist(string name, FTPDataType type)
        {
            bool bResult = false;

            try
            {
                switch (type)
                {
                case FTPDataType.Directory:
                    bResult = m_ftp.DirectoryExist(name);
                    break;

                default:
                    bResult = m_ftp.FileExist(name);
                    break;
                }
            }
            catch (Exception ex)
            {
                Log.OutputBox(ex);
            }

            return(bResult);
        }