Chapter 11. WinForm-文件及文件夹操作

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace 文件及文件夹操作
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //定义成员变量实例化文件
        FileInfo f = new FileInfo("E:\\aa.txt");

        private void button1_Click(object sender, EventArgs e)
        {
            //创建文件
            FileStream s = f.Create();
            s.Close();

            string fname = f.FullName;   //获取全路径
            string name = f.Name; //获取文件名
            DateTime d1 = f.CreationTime; //获取创建时间
            DateTime d2 = f.LastAccessTime;  //获取最后访问时间
            DateTime d3 = f.LastWriteTime;  //获取最后修改时间
            f.CreationTime = DateTime.Now;  //修改创建时间
            string length = f.Length.ToString();   //获取文件大小

            richTextBox1.Text =
                "创建成功\n文件名:" + name
                + "\n路径名:" + fname
                + "\n创建时间:" + d1
                + "\n修改创建时间:" + f.CreationTime
                + "\n最后访问时间:" + d2
                + "\n最后修改时间:" + d3
                + "\n文件大小:" + length;
        }
private void button2_Click(object sender, EventArgs e) { //移动文件 f.MoveTo("D:\\aa.txt"); //判断移动后的文件是否存在 bool b = f.Exists; if (b) { MessageBox.Show("移动成功"); } else { MessageBox.Show("移动失败"); } }

  
    private void button3_Click(object sender, EventArgs e) { //复制文件 f.CopyTo("C:\\aa.txt"); //判断复制的文件是否存在 bool b = f.Exists; if (b) { MessageBox.Show("复制成功"); } else { MessageBox.Show("复制失败"); } }


    private void button4_Click(object sender, EventArgs e) { //删除文件 f.Delete(); bool b = f.Exists; if (b) { MessageBox.Show("删除成功"); } else { MessageBox.Show("文件不存在,删除失败"); } }

#region 1.给一个文件夹,获取所有文件数量

        //定义成员变量来接受文件数量
        private int fcount = 0;

        /// <summary>
        /// 获取文件数量的方法
        /// </summary>
        /// <param name="path">当前文件夹路径</param>
        /// <returns>所有文件数量</returns>
        private int FileCount(string path)
        {
            //实例化当前文件夹对象
            DirectoryInfo d = new DirectoryInfo(path);

            //获取当前文件夹下所有文件的数量
            fcount += d.GetFiles().Length;

            //获取当前文件夹下所有的文件夹
            foreach (DirectoryInfo data in d.GetDirectories())
            {
                //递归获取所有文件夹中的文件数量
                FileCount(data.FullName);
            }
            return fcount;
        }
        private void button5_Click(object sender, EventArgs e)
        {
            textBox1.Text = FileCount(@"E:\BaiduYunDownload").ToString();
        }

        #endregion
         

 

        #region 2.给一个文件夹,获取所有文件夹数量

        //定义成语变量来接收文件夹数量
        private int dcount = 0;

        /// <summary>
        /// 获取当前文件夹中所有文件夹数量
        /// </summary>
        /// <param name="path">文件夹路径</param>
        /// <returns>文件夹数量</returns>
        private int DirCount(string path)
        {
            //实例化当前文件夹对象
            DirectoryInfo d = new DirectoryInfo(path);

            //获取当前文件夹中的子文件夹数量
            dcount += d.GetDirectories().Length;

            //获取当前文件夹中的子文件夹
            foreach (DirectoryInfo data in d.GetDirectories())
            {
                //递归获取子文件夹中文件夹的数量
                DirCount(data.FullName);
            }

            return dcount;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            textBox2.Text = DirCount("E:\\BaiduYunDownload").ToString();
        }

        #endregion
    
    

 

        #region 3.给一个文件夹,获取该文件夹大小

        //定义成员变量来接受文件夹大小
        private long size = 0;

        /// <summary>
        /// 获取文件夹大小的方法
        /// </summary>
        /// <param name="path">文件夹路径</param>
        /// <returns>文件夹大小</returns>
        private long Size(string path)
        {
            //实例化当前文件夹的对象
            DirectoryInfo d = new DirectoryInfo(path);

            //获取当前文件夹下的所有文件
            foreach (FileInfo dataf in d.GetFiles())
            {
                //获取当前文件夹下的所有文件的大小
                size += dataf.Length;
            }

            //获取当前文件夹下的所有子文件夹
            foreach (DirectoryInfo datad in d.GetDirectories())
            {
                //递归调用方法获取文件大小
                Size(datad.FullName);
            }

            return size;
        }
        private void button7_Click(object sender, EventArgs e)
        {
            textBox3.Text = Size("E:\\BaiduYunDownload").ToString() + "字节";
        }

        #endregion
    

    
        #region 4.给一个文件夹,删除该文件夹

        /// <summary>
        /// 删除文件夹方法
        /// </summary>
        /// <param name="path">文件夹路径</param>
        private void Delete(string path)
        {
            //实例化当前文件夹
            DirectoryInfo d = new DirectoryInfo(path);

            //获取当前文件夹下所有的文件
            foreach (FileInfo dataf in d.GetFiles())
            {
                //删除当前文件夹下的所有文件
                dataf.Delete();
            }

            //获取当前文件夹下的所有文件夹
            foreach (DirectoryInfo datad in d.GetDirectories())
            {
                //递归删除子文件夹的文件
                Delete(datad.FullName);
            }

            //删除当前空文件夹
            d.Delete();
        }

        private void button8_Click(object sender, EventArgs e)
        {
            DirectoryInfo d = new DirectoryInfo(@"E:\BaiduYunDownload\accelerate");

            //判断该文件夹是否存在
            bool b = d.Exists;
            if (b)
            {
                Delete(@"E:\BaiduYunDownload\.accelerate");
            }
            else { MessageBox.Show("未找到路径为" + @"E:\BaiduYunDownload\accelerate" + "的文件夹"); }

        }
       

 

 

#endregion


    }
}

 

posted @ 2016-09-02 21:03  庚xiao午  阅读(380)  评论(0编辑  收藏  举报