/// <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); }