新开一节IO(Input/Output)的用法。

这节主要讲一下操作文件和文件目录的两个静态类:File 和 Directory。

在进入正题之前,先理解一下相对路径和绝对路径这两个概念:

绝对路径,是指从盘符开始的路径,如:C:/user/desktop

相对路径,是指相对于当前目录的路径访问形式,“ . ”代表当前目录(不加点的话,默认访问当前目录),“ .. ”代表上一级目录,如果我们要访问当前目录的名为demo.txt的文件,可以这样写:./demo.txt,或者访问上一级的demo.txt文件:../demo.txt,相对路径的好处是不容易出现路径失效的问题。使用绝对路径,如果盘符更改后,原来指定旧盘符的路径都会失效,而相对路径因为不涉及盘符,则不会出现这种问题。

File

File类是操作文件的一个静态类,可以实现对文件的创建,复制,移动等操作。下面通过例子来演示下常用的操作:

创建文件:

File.Create("demo.txt");
if(File.Exists("demo.txt"))
Console.WriteLine("demo.txt文件已创建");

运行结果为:demo.txt文件已创建

在当前运行目录的文件夹下也可以看到该文件已被创建:

复制和移动文件:

这两个方法的用法是一样的,只不过一个是复制,源文件还在,一个是移动,源文件不在:

File.Copy("demo.txt","demo1.txt");//复制
File.Move("demo1.txt","demo1.txt");//移动

这两个方法的参数都是源文件路径,目标路径。不过要注意,不能与目标路径中的文件重名,windows下不允许重名文件。

打开文件:

使用Open()方法打开一个文件,该方法返回FileStream类的对象,可以对文件进行数据操作,本节不讲文件读写,请读者关注下一节。

删除文件:

File.Delete("demo.txt");

删除文件时,如果文件不存在,不会报错

Directory

创建目录:

Directory.CreateDirectory("Test");

使用CreateDirectory()方法创建一个目录,运行完毕后可以在运行目录下找到新建的目录:

移动和删除:

目录类没有复制方法,只有移动和删除方法,同样的也是使用Delete()和Move()方法,此处不再演示。

获取子目录和子文件:

为了演示,我现在Test目录下新建几个目录和文件:

使用GetDirectories()方法获取某路径下的目录:

var dirs = Directory.GetDirectories("Test");
foreach (var dir in dirs){
  Console.WriteLine(dir);
}

运行结果:

使用GetFiles()获取某目录下的文件:

var dirs = Directory.GetFiles("Test");

使用GetFileSystemEntries()方法可以将目录下的目录和文件都获取到,用法同上,此处不再演示。

更多方法请读者查阅相关文档,用法都很简单。

这是我的公众号二维码,获取最新文章,请关注此号

File & Directory的更多相关文章

  1. wins和linux 系统不同编码格式导致的.py执行问题: bad interpreter: No such or file directory

    我在win7上用IDLE编写了一个python文件(MyTopo.py),但是用putty传到VM中的ubuntu系统中,用 ./MyTopo方式执行. 显示: /bin/sh^M: bad inte ...

  2. adb pull 报错处理:adb: error: cannot create file/directory 'E:\': No such file or directory

    adb pull /sdcard/1.txt e:/ 报错:adb: error: cannot create file/directory 'E:\': No such file or direct ...

  3. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )

    对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本的认知, 若要深入了解,还是得通过实际的项目才行了,好了废话不多说,上酸菜!! 注:红色标题为 ...

  4. Linux File、File Directory IO Operation Summary(undone)

    目录 . 引言 . Linux下文件操作API . Linux下文件目录操作API . Linux下的其他设备操作API 1. 引言 Linux支持多种文件系统,如ext.ext2.minix.iso ...

  5. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang

    一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) :      用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...

  6. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite )(转载)

    本文转自http://www.cnblogs.com/zery/p/3315889.html 对于文件夹,文档的操作一直处于一知半解状态,有时间闲下来了,好好练习了一把,对文档,文件的操作有了一个基本 ...

  7. Tag file directory /struts-tags does not start with "/WEB-INF/tags"

    使用自定义标签,记得引用路径 <%@taglib prefix="s" uri="/struts-tags" %>

  8. [翻译]NUnit---String && Collection && File && Directory Assert (七)

    StringAssert (NUnit 2.2.3) StringAssert类提供一系列检查字符串的方法. CollectionAssert (NUnit 2.4 / 2.5) Collection ...

  9. System.IO中的File、FileInfo、Directory与DirectoryInfo类(实例讲解)

    一.建立的文件夹(对这些文件进行以上四个类的操作): 父目录: 父目录的子目录以及父目录下的文件: 子目录下的文件: 二.效果图 三.代码实现 using System; using System.I ...

随机推荐

  1. 2019 GDUT Rating Contest II : Problem C. Rest Stops

    题面: C. Rest Stops Input file: standard input Output file: standard output Time limit: 1 second Memory ...

  2. python文件处理之fileinput

    一.介绍 fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作,我们常用的open函数是对一个文件进行读写操作. fileinput模块的input()函数比open函数更高效和好用 ...

  3. Androi Studio 之 RelativeLayout

    RelativeLayout简介 •基本属性 •根据父容器定位 •父容器定位属性示意图 •根据兄弟组件定位 •根据兄弟组件定位 •margin(偏移) •padding(填充) •margin与pad ...

  4. 洛谷P1290欧几里德游戏

    题目地址 题目大意: 两个人st和ol博弈 有两个整数n,m 每次轮到一个人时候,需要选择用大的那个数减去小的那个数的倍数(不能减为负数) 最后得到0的为胜利者 思路: (以下讨论均在n<m的条 ...

  5. 使用KeepAlived来实现高可用的DR模型

    环境 VMware 16 CentOS8 相关软件 keepalived ipvsadm httpd 准备工作 准备四个节点,如上图,Node01 ~ Node04, 本文默认你会在VMWare上安装 ...

  6. Java 获取Word中的标题大纲(目录)

    概述 Word中的标题可通过"样式"中的选项来快速设置(如图1), 图1 在添加目录时,可将"有效样式"设置为"目录级别"显示(如图2),一 ...

  7. AgileConfig - 轻量级配置中心1.2.0发布,全新的UI✨✨✨

    AgileConfig自发布以来有个"大问题"-UI太丑.因为当初这个项目是给自己用的,连UI界面都没有,全靠手动在数据库里改配置.后来匆匆忙忙使用bootstrap3简单的码了一 ...

  8. day-4 xctf-pwn CGfsb

    xctf-pwn CGfsb 传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id= ...

  9. 2-69.x的平方根

    题目描述: 解题思路: 计算平方根可以依次通过自然数递增,来判断两者相乘是否为目标值,是一个有序的序列,因此考虑使用二分查找. 由于x=0和1时,就是其本身,单独拿出来.当x>1时,其平方根一定 ...

  10. Civil3d中 如何用管轴线的变坡点桩号控制其他纵断面数据的显示?

    如何用管轴线的变坡点桩号控制其他纵断面数据的显示?如下图所示: 主要进行两步操作,下面以地面高程为例. 第1步: 右键纵断面图,打开纵断面图特性对话框,选择"标注栏"选项卡,分别设 ...