public static List <STFTPFiles> FileListFormFTPDirectory(string DirectoryPath) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(GetAddress() + DirectoryPath); SetNetworkCreadentials(request); request.Method = WebRequestMethods.Ftp.ListDirectory; StreamReader streamReader = new StreamReader(request.GetResponse().GetResponseStream()); string fileName = streamReader.ReadLine(); List <STFTPFiles> files = new List <STFTPFiles>(); while (fileName != null) { STFTPFiles data = new STFTPFiles(); data.Name = fileName; files.Add(data); fileName = streamReader.ReadLine(); } request = null; streamReader = null; return(files); }
public static List <STFTPFiles> FileListFormFTPDirectoryDetails(string DirectoryPath) { FtpWebRequest _fwr = (FtpWebRequest)WebRequest.Create(GetAddress() + DirectoryPath) as FtpWebRequest; SetNetworkCreadentials(_fwr); _fwr.UseBinary = true; _fwr.UsePassive = true; _fwr.KeepAlive = true; _fwr.Method = WebRequestMethods.Ftp.ListDirectoryDetails; StreamReader _sr = new StreamReader(_fwr.GetResponse().GetResponseStream(), System.Text.Encoding.UTF8); List <STFTPFiles> files = new List <STFTPFiles>(); STFTPFiles data = new STFTPFiles(); data._dirlist = new List <object>(); data._attlist = new List <object>(); data._datelist = new List <object>(); data._szlist = new List <long>(); while (!_sr.EndOfStream) { Debug.Log(_sr.ReadLine()); string[] buf = _sr.ReadLine().Split(' '); //string Att, Dir; int numcnt = 0, offset = 4; long sz = 0; for (int i = 0; i < buf.Length; i++) { //Count the number value markers, first before the ftp markers and second //the file size. if (long.TryParse(buf[i], out sz)) { numcnt++; } if (numcnt == 2) { //Get the attribute string cbuf = "", dbuf = "", abuf = ""; if (buf[0][0] == 'd') { abuf = "Dir"; } else { abuf = "File"; } //Get the Date if (!buf[i + 3].Contains(":")) { offset++; } for (int j = i + 1; j < i + offset; j++) { dbuf += buf[j]; if (j < buf.Length - 1) { dbuf += " "; } } //Get the File/Dir name for (int j = i + offset; j < buf.Length; j++) { cbuf += buf[j]; if (j < buf.Length - 1) { cbuf += " "; } } //Store to a list. data._dirlist.Add(cbuf); data._attlist.Add(abuf); data._datelist.Add(dbuf); data._szlist.Add(sz); offset = 0; break; } } } files.Add(data); return(files); }