C#回顾 - 2.NET的IO:Path、File、FileInfo、Directory、DirectoryInfo、DriveInfo、FileSystemWatcher
1.管理文件系统
一般而言,应用程序都会有保存数据、检索数据的需求。
1.1 使用 path 类来访问文件路径
【path常用的方法】:http://www.cnblogs.com/tangge/archive/2012/10/30/2746458.html#a3
1.2 使用 File 和 FileInfo 类访问文件
1.2.1 File 类
static void Main(string[] args)
{
string sourceFileName = @"F:\a.txt"; //源文件
string destFileName = @"c:\a.txt"; //目标文件
//如果源文件不存在
if (!File.Exists(sourceFileName))
{
File.Create(sourceFileName).Close();
}
//如果目标文件存在,先删除
if (File.Exists(destFileName))
{
File.Delete(destFileName);
} File.Copy(sourceFileName, destFileName);
File.Delete(sourceFileName);
}
重复记录
string sourceFileName = @"F:\a.txt"; //源文件
string destFileName = @"c:\a.txt"; //目标文件 StreamWriter sw = File.AppendText(destFileName);
sw.WriteLine(string.Format("{0}复制完毕", DateTime.Now));
sw.Flush();
sw.Close();
1.2.2 FileInfo 类
Length
private static void Main(string[] args)
{
string path = @"E:\中天IT\视频\DVD-ASP.NET\DVD-张波.NETC1001\IO详解——张波.NETC1001\1上次复习_作业讲解.avi";
FileInfo fi = new FileInfo(path);
Console.WriteLine(
string.Format("本文件为{0:#.00}M", fi.Length / (1024 * 1024)));
}
1.3 使用Directory 和 DirectoryInfo 类访问目录
1.3.1 Directory 类
string path = @"F:\tt\aeg\www";
if (Directory.Exists(path))
{
Directory.Delete(path);
}
else
{
Directory.CreateDirectory(path);
}
string path = @"F:\tt\aeg"; //GetFiles 检索文件列表
string[] aa= Directory.GetFiles(path);
foreach (var a in aa)
{
Console.WriteLine(a);
} Console.WriteLine("------------");
//GetDirectories 检索文件夹列表
foreach (var s in Directory.GetDirectories(path))
{
Console.WriteLine(s);
} Console.WriteLine("------------");
//GetDirectories 检索文件夹和文件列表
foreach (var s in Directory.GetFileSystemEntries(path))
{
Console.WriteLine(s);
}
1.3.2 DirectoryInfo 类
1.4 使用 DriveInfo 类访问驱动器
Console.WriteLine("驱动器{0},类型为{1},",dr.Name,dr.DriveType);
//if (dr.IsReady)
//{
Console.WriteLine("可用空间为{0}", dr.AvailableFreeSpace);
//}
Console.WriteLine("驱动器{0},类型为{1},", dr.Name, dr.DriveType);
if (dr.IsReady)//设备已经准备好
{
Console.WriteLine("\t可用空间为{0}G", dr.AvailableFreeSpace/(1024*1024*1024)); //41G
Console.WriteLine("\t分区格式为{0}\n",dr.DriveFormat); //NTFS
}
1.5 FileSystemWatcher 类
2.使用字节流
3.管理应用程序数据
4.高效操作字符串
C#回顾 - 2.NET的IO:Path、File、FileInfo、Directory、DirectoryInfo、DriveInfo、FileSystemWatcher的更多相关文章
- File,FileInfo,Directory,DirectoryInfo
两者的共同点: 一:都用于典型的操作,如复制.移动.重命名.创建.打开.删除和追加到文件 二:默认情况下,将向所有用户授予对新文件的完全读/写访问权限. 两者的区别: File类是静态类, ...
- 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类
Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...
- Java学习之IO之File类二
之前学了File便想把我学习视频的名字改了,因为文件名太长不好看,便试着写了个功能实现 package com.gh.file; import java.io.File; /** * 批量文件命名 * ...
- IO以及file的一些基本方法
IO定义:将内存的数据 持久化到设备上 这个动作称为输出 写 Output操作 把硬盘上的数据读取到内存 这个动作称为输入 读 Input 把上面这两种操作称为IO操作 File类的静态成员变量:pa ...
- IO流-file
1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把 ...
- System.IO.Path文件路径类
Path类的静态属性和方法,此类操作不影响物料文件. 属性 char a = System.IO.Path.VolumeSeparatorChar;//: char b = System.IO.Pat ...
- npm安装socket.io时报错的解决方法(npm WARN enoent ENOENT: no such file or directory, open '/usr/local/nodejs/bin/package.json')
执行 npm install socket.io安装时报错: [root@WEB node_modules]# npm install socket.ionpm WARN enoent ENOENT: ...
- Path类与Directory类与File类
阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo 对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...
- IO流-File,字节流,缓冲流
1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把 ...
- JAVA基础--IO输入输出(File使用)17
一. File中的方法 1. 列举方法 /* * 获取指定目录以及子目录下的所有文件和文件夹 */ public class ListFilesDemo { public static void m ...
随机推荐
- Unity手游之路<八>自动寻路Navmesh之入门
http://blog.csdn.net/janeky/article/details/17457533 在的大部分mmo游戏都有了自动寻路功能.点击场景上的一个位置,角色就会自动寻路过去.中间可能会 ...
- Laravel 5.1 文档攻略 —— Eloquent Collection
简介 像all()和get(),还有一些处理模型关系这种会返回多条数据的方法,在Eloquent里面会返回一个collection对象集合(对象装在对象里),而不是像DQB的数组结果集合(对象装在数组 ...
- Android中对Log日志文件的分析[转]
一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, a ...
- mysql日期加减<转>
1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select ...
- BZOJ 1922: [Sdoi2010]大陆争霸
Description 一个无向图,到一个点之前需要先到其他点,求从第一个点到第 \(n\) 点最短时间. Sol 拓扑+Dijkstra. 跑Dijkstra的时候加上拓扑序... 用两个数组表示 ...
- python协程
http://bingotree.cn/?p=63 协程与yield的介绍,轻松搞笑. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d ...
- jquery学习——遍历
1.each() $(selector).each(function(index,element)) var arr = [ "a", "bb", " ...
- bootstrap按钮组
种类 -a, input , button 块级 btn-block 按钮组 btn-group btn-group-justified btn-group-vertical </div ...
- 什么情况下可以不写PHP的结束标签“?>”
我们经常看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下必须写?先来看2个例子: 下面的代码正常运行: <?php echo 1234 ...
- ubuntu update dns server
edit: /etc/resolvconf/resolv.conf.d/base nameserver 114.114.114.114 execute this: $ resolvconf -u f ...