新开一节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. 记一次scrapy-redis爬取小说网的分布式搭建过程

    scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署. 有如下特征: 分布式爬取 可以启动多个spider工程,相 ...

  2. windows如何上传ios app到appstore

    我们在hbuilderx这些开发工具打包好ios app后,需要将这个app提交appstore才能让用户下载安装. 上传IOS APP主要是通过苹果开发者中心来上传,然后借助香蕉云编上传工具来上传就 ...

  3. 攻防世界 reverse Mysterious

    Mysterious  BUUCTF-2019 int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4) { char v5; // [e ...

  4. Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置

    Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos支持三种部署模式 单机模式 - 用于测试 ...

  5. jenkins构建go及java项目

    jenkins构建go及java项目 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14554017.html 写在前面 jenkins作为java的好基友,经历 ...

  6. Etcd常用运维命令

    目录 常用命令 常见操作 如何缩容? 如何扩容? 数据目录丢失或被误删除,节点启动失败或者加入集群报错? 操作步骤 操作步骤不正确的各种常见错误日志 常用命令 #查看集群member情况 etcdct ...

  7. 幻灯片放映模式切换windows terminal背景图片

    目录 幻灯片放映模式切换windows terminal背景图片 脚本功能 开发需求 使用技术 操作说明 使用示例 查看帮助 输入参数使用 脚本详情 引用参考 幻灯片放映模式切换windows ter ...

  8. try - with - resource

    本文详细介绍了自 JDK 7 引入的 try-with-resources 语句的原理和用法,以及介绍了 JDK 9 对 try-with-resources 的改进,使得用户可以更加方便.简洁的使用 ...

  9. 网络编程Netty入门:Netty的启动过程分析

    目录 Netty的启动过程 Bootstrap 服务端的启动 客户端的启动 TCP粘包.拆包 图示 简单的例子 Netty编解码框架 Netty解码器 ByteToMessageDecoder实现类 ...

  10. Day06_31_接口(Interface)

    java 接口(Interface) 接口和抽象类的区别? 子类只能通过extends关键字去继承抽象类(Abstract),子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现 ...