public string UploadFile(FileDirectoryInfo source, string dest, BackgroundWorker bw) { var request = createRequest(combine(uri, dest), WebRequestMethods.Ftp.UploadFile); Int64 filesize = Int64.Parse(source.FileSize.Remove(source.FileSize.Length - 3, 3)); using (var stream = request.GetRequestStream()) { using (var fileStream = System.IO.File.Open(source.Name, FileMode.Open)) { int num; byte[] buffer = new byte[bufferSize]; Int64 done = 0; int i = 1; while ((num = fileStream.Read(buffer, 0, buffer.Length)) > 0) { stream.Write(buffer, 0, num); done += num; i++; if (i % FREQUENCY == 0) { i = 1; bw.ReportProgress((int)(done / bufferSize * 100 / filesize)); } } } } return getStatusDescription(request); }
private List <FileDirectoryInfo> DirSearch(string sDir, List <FileDirectoryInfo> tree, FileDirectoryInfo parentDirectory) { //List<clsDirectory> files = new List<clsDirectory>(); if (parentDirectory == null) { parentDirectory = new FileDirectoryInfo() { fullpath = sDir, isfolder = true, isExpanded = true }; //parentDirectory.breadcrumbs = parentDirectory.title; } if (tree == null || tree.Count() == 0) { tree = new List <FileDirectoryInfo>(); tree.Add(parentDirectory); } try { foreach (string f in Directory.GetFiles(sDir)) { parentDirectory.children.Add(new FileDirectoryInfo() { fullpath = f, isfolder = false, breadcrumbs = parentDirectory.breadcrumbs }); } foreach (string d in Directory.GetDirectories(sDir)) { var childDirectory = new FileDirectoryInfo() { fullpath = d, isfolder = true }; childDirectory.breadcrumbs = string.Format("{0}{1}{2}", parentDirectory.breadcrumbs, string.IsNullOrEmpty(parentDirectory.breadcrumbs)? "":">", childDirectory.title); DirSearch(d, tree, childDirectory); parentDirectory.children.Add(childDirectory); //files.AddRange(DirSearch(d)); } } catch (Exception excpt) { //MessageBox.Show(excpt.Message); } return(tree); }
public string DownloadFile(FileDirectoryInfo source, string dest, BackgroundWorker bw) { var request = createRequest(combine(uri, source.Name), WebRequestMethods.Ftp.DownloadFile); Int64 filesize = Int64.Parse(source.FileSize.Remove(source.FileSize.Length - 3, 3)); byte[] buffer = new byte[bufferSize]; using (var response = (FtpWebResponse)request.GetResponse()) { using (var stream = response.GetResponseStream()) { using (var fs = new FileStream(dest, FileMode.OpenOrCreate)) { int readCount = stream.Read(buffer, 0, bufferSize); Int64 done = readCount; int i = 1; while (readCount > 0) { fs.Write(buffer, 0, readCount); readCount = stream.Read(buffer, 0, bufferSize); done += readCount; i++; if (i % FREQUENCY == 0) { i = 1; bw.ReportProgress((int)(done / bufferSize * 100 / filesize)); } } } } return response.StatusDescription; } }
public string UploadFileWithUniqueName(FileDirectoryInfo source, BackgroundWorker bw) { var request = createRequest(WebRequestMethods.Ftp.UploadFileWithUniqueName); Int64 filesize = Int64.Parse(source.FileSize.Remove(source.FileSize.Length - 3, 3)); using (var stream = request.GetRequestStream()) { using (var fileStream = System.IO.File.Open(source.Name, FileMode.Open)) { int num; byte[] buffer = new byte[bufferSize]; Int64 done = 0; int i = 1; while ((num = fileStream.Read(buffer, 0, buffer.Length)) > 0) { stream.Write(buffer, 0, num); done += num; i++; if (i % FREQUENCY == 0) { i = 1; bw.ReportProgress((int)(done / bufferSize * 100 / filesize)); } } } } using (var response = (FtpWebResponse)request.GetResponse()) { return System.IO.Path.GetFileName(response.ResponseUri.ToString()); } }