快速上手之 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("移动失败,很遗憾,不加分!");
            }
        }
    }
}

四.小结:

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 01:14:21

快速上手之 C# 操作Directory类的相关文章

快速上手之 C#操作WORD对象模型

想当年省计算机一级考了60飘过,暗自窃喜. 如今要考虑它是怎么给我判了个60分. 当年不会做Excel题,OUTLOOK题,IE题. 如今要搞清楚它判分的逻辑是什么. 两年如此大的差距,晕晕的开始没有头绪,后来... 矫情一番,收.什么是WORD对象模型? 初步认识: word主要有五大对象,Application,Document,Selection,Bookmarks,Range. Application:代表Microsoft Word应用程序本身,是所有对象的基类,对word环境的控制是

C#文件夹操作之Directory类和DirectoryInfo类

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

Rancher 快速上手指南操作(1)

Rancher 快速上手指南操作(1)该指南知道用户如何快速的部署Rancher Server 管理容器.前提是假设你的机器已经安装好docker了.1 确认 docker 的版本,下面是 ubuntu 的输出 [#63#[email protected] ~]$sudo docker version [sudo] password for cloudsoar: Client: Version:      1.9.1 API version:  1.21 Go version:   go1.4.

C# Directory类的操作

Directory类位于System.IO 命名空间.Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法.此外,你还可以访问和操作各种各样的目录属性,例如创建或最后一次修改时间以及Windows访问控制列表等. System.IO.Directory类和System.DirectoryInfo类 主要提供关于目录的各种操作,使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法. 方法/步骤 1  目录创建方法:Directory.CreateD

DPDK快速上手指南(18.02)

DPDK快速上手(linux) 本文档主要来自linux_gsg-18.02.pdf的翻译,翻译肯定有不妥之处,请批评指正,我会随后修改,不胜感激. 1. 介绍 本文档包含有关DPDK(Data Plane Development Kit的缩写)软件的安装和配置的说明,目的就是让用户快速用起来.本文档描述怎样在linux应用环境下编译和运行一个DPDK应用程序,而不过多深入细节. 1.1文档路线图 以下是针对所有DPDK文档建议的阅读顺序: 发布说明(Release Notes):提供具体的发布

Solr基础理论与维护管理快速上手(含查询参数说明)

1. solr基础 因为 Solr 包装并扩展了 Lucene,所以它们使用很多相同的术语.更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容.通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引. 在 Solr 和 Lucene 中,使用一个或多个 Document 来构建索引.Document 包括一个或多个 Field.Field 包括名称.内容以及告诉 Solr 如何处理内容的元数据.例如,Fi

【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单

写在开头 现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy-.)wisted, zope interface,pywin32---现在scrapy的安装真的很简单的好不好! 代码我放github上了,可以参考: https://github.com/hk029/doubanbook 为什么要用scrapy 我之前讲过了requests,也用它做了点东西,([图文详解]python爬虫实战--5分钟做

快速上手之 MVC入门实例

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 快速上手.今天我们来从无到有创建mvc项目,介绍一下相关的知识点.咱们开门见山.我做的简单的demo 是最基本

vs转eclipse之工具快速上手篇

eclipse工具下载 首先说明,本篇内容适用于刚开始学java的同学,老手大牛等可以路过. 不得不说vs确实很强大,常用的都在安装包里集成了,几乎可以一键安装,直接使用,操作起来非常方便. eclipse刚开始使用相对vs来说确实很大不适应,本篇重点介绍下如何快速上手eclipse. eclipse工具下载, java jdk配置不在本篇范围内,刚开始学java的同学和有兴趣转java的同学可以自行搜索如何配置jdk. 汉化篇 俗话说工欲善其事必先利其器;从官网下载的eclipse是英文版本的