Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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());
            }
        }