遍历Obex目录中的每个文件夹

时间:2012-11-03 10:49:15

标签: c# obex

我正在winforms中开发一个文件传输应用程序,我想添加一个下载文件夹的功能,到目前为止我能够实现文件夹的上传,因为该过程在客户端完成,但在下载与我使用C#和brecham.obex库的方式不同。

 public void UploadFolder(string directory)
        {
            string[] directoryArray = Directory.GetDirectories(directory);

            if (directoryArray.Length != 0)
            {
                UploadDelegate up = delegate(string d)
                {
                    DirectoryInfo directoryInfo = new DirectoryInfo(d);
                    FileInfo[] fileInfo = directoryInfo.GetFiles();
                    string substr = parentFolder;
                    string di = directoryInfo.FullName;

                    int start = di.IndexOf(parentFolder);
                    string result = di.Substring(start);

                    session.SetPath(BackupFirst.DoNot, result, IfFolderDoesNotExist.Create);

                    foreach (FileInfo fi in fileInfo)
                    {

                        session.PutFile(fi.FullName);
                    }
                };
                up(directory);
                foreach (var dir in directoryArray)
                {
                    up(dir);
                    UploadFolder(dir);
                }
            }
        }


        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog folderbrowse = new FolderBrowserDialog();
            string folderName;
            if (folderbrowse.ShowDialog() == DialogResult.OK)
            {

                startPath = folderbrowse.SelectedPath;
                DirectoryInfo info = new DirectoryInfo(startPath);
                DirectoryInfo folder = new DirectoryInfo(startPath);
                folderName = folder.Name;
                parentFolder = "\\" + folderName;
                bgWorker.RunWorkerAsync();
            }
        }



        private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            UploadFolder(startPath);

        }

        private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            session.SetPathReset();
            RefreshFolder();
        }

0 个答案:

没有答案