快速上手之 C# 操作Directory类

考试的时候有这样一些简单的题:

1.把a文件从b文件夹移动到c文件夹

2.在a文件夹中创建b.lnk

3.删除a文件夹中的b

......

这一系列的题,如何判断考生是否做对了呢?


一.归总题型


对于windows操作题,我们归总了一下分为:

1.new一个新的文件(excel,word,jpg),一个新的文件夹,一个新的lnk

2.delete

3.remove

4.read info


  建立,删除,移动,读取信息,如果是判分,其实只需要做一点,那就是查询。new的话,就查询它是否新建了,delete的话,就看看它是否删除了。移动其实就是,A中不存在,B中存在的结果。read info也很简单,把文件找到读出它的属性。


二.Directory类

  

  这就需要我们的Directory类,用于典型操作,如复制、移动、重命名、创建和删除目录。也可将 Directory 类用于获取和设置与目录的创建、访问及写入操作相关的 DateTime 信息。由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。大多数 Directory 方法要求当前操作的目录的路径。


  我还查到了一个跟它相似的类,先区分一下它和它的一个小兄弟——DirectoryInfo类

  • 相同点: 均能对目录进行操作
  • 区 别: DirectoryInfo类必须被实例化后才能使用,而directory类则只提供了静态的方法。如果多次使用某个对象一般使用DirectoryInfo类如果仅执行某一个操作则使用directory类提供的静态方法效率更高一些。



  本篇主要介绍directory类,有兴趣的亲可以继续研究。directory类,公开用于创建、移动和枚举通过目录和子目录的静态方法。 此类不能被继承。继承层次结构 System.Object →System.IO.Directory

  命名空间:System.IO
  程序集:mscorlib(在 mscorlib.dll 中)



  常用方法如下:





三.具体实例:


  下面,是我们做的一个个的小demo,分享给大家。


1.读取文件属性(只读,隐藏)

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

namespace Word
{
    public partial class 文件只读与隐藏属性 : Form
    {
        public 文件只读与隐藏属性()
        {
            InitializeComponent();
        }


        //判断abc.xlsx是否为只读
        private void button1_Click(object sender, EventArgs e)
        {
            if (File.GetAttributes(@"E:\计算机\项目\计算机一级项目\Windows\abc.xlsx").ToString().IndexOf("ReadOnly") != -1)
            {
                MessageBox.Show("是只读的!");
            }
            else
            {
                MessageBox.Show("不是只读的!");
            }
        }

        //判断abc.xlsx是否为隐藏
        private void button2_Click(object sender, EventArgs e)
        {
            if (File.GetAttributes(@"E:\计算机\项目\计算机一级项目\Windows\abc.xlsx").ToString().IndexOf("Hidden") != -1)
            {
                MessageBox.Show("是隐藏!");
            }
            else 
            {
                MessageBox.Show("不是隐藏的!");
            }
        }

        //判断ab.xlsx是否为只读
        private void button3_Click(object sender, EventArgs e)
        {
        
           if (File.GetAttributes(@"E:\计算机\项目\计算机一级项目\Windows\ab.xlsx").ToString().IndexOf("ReadOnly") != -1)
            {
                MessageBox.Show("是只读的!");
            }
            else
            {
                MessageBox.Show("不是只读的!");
            }
        }

        //判断ab.xlsx是否为隐藏
        private void button4_Click(object sender, EventArgs e)
        {
            if (File.GetAttributes(@"E:\计算机\项目\计算机一级项目\Windows\ab.xlsx").ToString().IndexOf("Hidden") != -1)
            {
                MessageBox.Show("是隐藏!");
            }
            else
            {
                MessageBox.Show("不是隐藏的!");
            }
        }

        private void 文件只读与隐藏属性_Load(object sender, EventArgs e)
        {

        }
    }
}




2.判断文件是否存在的问题

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

namespace Windows操作题
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //1、是否存在文件夹

            string aaaa = "H:\\NCRE";    //路径的正确写法
            if (Directory.Exists(aaaa))   //如果不存在就创建file文件夹
            {
                MessageBox.Show("存在文件夹,得一分哦!");
            }
            else
            {
                MessageBox.Show("不存在文件夹,很遗憾,米有分!");               
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //5、文件夹是否已经删除
            string aaaa = "H:\\1";    //路径的正确写法
            if (Directory.Exists(aaaa))   //判断是否存在
            {
                MessageBox.Show("文件夹还在,没有删除,没有分!");
            }
            else
            {
                MessageBox.Show("文件夹已经删除啦,得一分,厉害!");
            }

        }

        private void button3_Click(object sender, EventArgs e)
        {//6、从a移动到b,判断a没有了,b有了
           
            string aaaa = "D:\\NCRE"; //D盘是之前的路径
            string bbbb = "H:\\NCRE";//H盘是移动之后的路径
            if (!Directory.Exists(aaaa) & Directory.Exists(bbbb))   //如果没有在D,在H证明成功
            {
                MessageBox.Show("D盘没有,H盘有!移动成功,加一分!!");
            }
            else
            {
                MessageBox.Show("移动失败,很遗憾,不加分!");
            }
        }
    }
}


四.小结:


  对于操作题,找到对应的类和属性,就可以很快的上手。


你可能感兴趣的:(C#,Directory类)