public void ProcessRawPackagesFromFtpServer() { // Can support process local file if web server, ftp server, file download server on the same physical machine string fileServerIpAddress = GetFileServerIpAddress(); int fileServerPort = GetFileServerPort(); string serverUrl = FtpUtil.GetFileServerUrl(fileServerIpAddress, 21, "subset"); FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(serverUrl); ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory; ftpRequest.Credentials = FtpUtil.GetFileServerCredential(); FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); string[] directoryOrFileNames; using (Stream responseStream = ftpResponse.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream); string result = reader.ReadToEnd(); directoryOrFileNames = String.IsNullOrEmpty(result) ? null : result.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); } List <string> filteredResult = new List <string>(); for (int i = 0; i < directoryOrFileNames.Length; i++) { string fileName = directoryOrFileNames[i]; if (fileName.EndsWith(".zip")) { string serverFileFullPath = string.Format("{0}/{1}", serverUrl, fileName); FtpUtil.ProcessSourceFileFromFTPServer(serverFileFullPath, @"C:\GmuTemp"); } } // Upload processed file back to ftp server }