WebClient和Directory的使用 都是很强大的

RX:

      /*
                 System.Net.WebClient的使用
                 * System.Net.WebClient mywebclient = new System.Net.WebClient();
                 * 可以提供同步下载或者异步下载
                 * 
                 * 同步下载:
                 * mywebclient.DownloadFile(url, pagh);
                 * 下载完成之后就可以打开System.Diagnostics.Process.Start(pagh);
                 * 
                 * 
                 * 异步下载:
                 *mywebclient.DownloadFileAsync(new Uri(url),pagh);
                 * 在下载之前可以设置 下载完成后的事件:
                 *mywebclient.DownloadFileCompleted += new AsyncCompletedEventHandler(mywebclient_DownloadFileCompleted);
                 * 事件委托方法如下:
                    void mywebclient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
                    {
                        MessageBox.Show("下载完成,即将自动打开");
                        System.Diagnostics.Process.Start(xx);
                        //throw new Exception("The method or operation is not implemented.");
                    }
                 * 
                 * 下载的路径变量pagh可以设置成全局变量
                 * 异步下载可以同时进行多个文件下载和下载大文件的时候可以进行别的操作,
                 * 设置下载完成的事件就好 当下载完成会通知用户的。
                 */

 WebClient关于winform中的上传写法和web服务器的写法参见这里传送门

Directory 这也很强大

介绍下吧 

 //1.获取当前应用程序路径
                        //以前知道这个
                        Application.StartupPath();
                        //没想到这个也可以
                        Directory.GetCurrentDirectory();
                        //2.检测目标文件夹是否存在 不存在就创建
                        if (Directory.Exists(!@"d:\temp"))
                        {
                            Directory.CreateDirectory(@"d:\temp");
                        }
                        //3.检测目标文件是否存在 不存在就创建
                        if(File.Exists(!@"d:\temp\temp.txt"))
                        {
                            File.Create(@"d:\temp\temp.txt");
                        }
                        //上边可以用下边的替代
                        File.CreateText(@"d:\temp\temp.txt");
                        //3.删除
                        //重载两次  
                        //一个参数代表只删除目标文件夹中的文件
                        //后一个参数可以为true或false  
                        //如果为true就删除所有文件 为false或者仅仅一个参数只删除目标文件夹的所有文件 保留子文件夹
                        Directory.Delete(@"d:\temp");
                        //4.移动文件或文件夹
                        //把d盘下的temp文件夹移动到e盘
                        Directory.Move(@"d:\temp", @"e:\temp");

                       //获取目录的创建日期和时间
                        Directory.GetCreationTime( Directory.GetCurrentDirectory());
                        //检索指定路径的父目录
                        Directory.GetParent( Directory.GetCurrentDirectory());

                        //5.获取当前目录的文件和文件夹的目录列表(包括文件或文件夹的名称)
                        string[] ooxx1 = Directory.GetFileSystemEntries(Directory.GetCurrentDirectory());
                        //6.获取当前目录下的文件的目录列表(包括文件的名称)
                        string[] ooxx2 = Directory.GetFiles(Directory.GetCurrentDirectory());
                        //7.获取当前目录下的文件夹的目录列表(包括文件夹的名称)
                        string[] ooxx3 = Directory.GetDirectories(Directory.GetCurrentDirectory());

                        //第一个重载前两个参数 第二三个重载了三个参数
                        //第一个参数 要查询的路径
                        //第二个参数 查询字符  可以用正则  跟计算机搜索差不多  可以用 *.pdf
                        //第三个参数 SearchOption枚举:
                        //SearchOption.AllDirectories//搜索当前目录和所有子目录
                        //SearchOption.TopDirectoryOnly仅仅搜索当前目录


                        //msdn上经典的例子:

                        
                         // Process all files in the directory passed in, recurse on any directories 
                        // that are found, and process the files they contain.
                        public static void ProcessDirectory(string targetDirectory) 
                        {
                            // Process the list of files found in the directory.
                            string [] fileEntries = Directory.GetFiles(targetDirectory);
                            foreach(string fileName in fileEntries)
                                ProcessFile(fileName);

                            // Recurse into subdirectories of this directory.
                            string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
                            foreach(string subdirectory in subdirectoryEntries)
                                ProcessDirectory(subdirectory);
                        }

                        // Insert logic for processing found files here.
                        public static void ProcessFile(string path) 
                        {
                            Console.WriteLine("Processed file '{0}'.", path);        
                        }
原文地址:https://www.cnblogs.com/0banana0/p/2461159.html