3-11 IO操作
IO操作
Input/Output 即输入输出,C# 狭义的IO包括通信(指的是打字机之类的端口通信),另一个指的就是磁盘数据的操作。
要进行文件的操作,需要引用Sytem.IO
命名空间。
文件夹
//创建文件夹
Directory.CreateDirectory("D:/CTest");
//删除文件夹
Directory.Delete("D:/CTest");
//移动文件夹
Directory.Move("D:/CTest", "D:/DTest");
//判断是否穿在
Directory.Exists("D:/CTest");
//获取子文件夹数组
Directory.GetDirectories("D:/CTest");
//或取子文件数组
Directory.GetFiles("D:/CTest");
CreateDirectory 创建文件夹
Directory.CreateDirectory("F:/文件操作专用目录/CTest");
Directory.CreateDirectory("F:/文件操作专用目录/CTest/A");
Directory.CreateDirectory("F:/文件操作专用目录/CTest/B");
Directory.CreateDirectory("F:/文件操作专用目录/CTest/C");
Delete 删除文件夹
//删除空目录
Directory.Delete("F:/文件操作专用目录/CTest");
Directory.Delete("F:/文件操作专用目录/CTest", false);
//删除目录及目录内的所有内容
Directory.Delete("F:/文件操作专用目录/CTest",true);
Move 移动文件夹
//改名
Directory.Move("F:/文件操作专用目录/CTest", "F:/文件操作专用目录/DTest");
//移动
Directory.Move("F:/文件操作专用目录/DTest", "F:/CTest");
Exists 判断目录是否存在
if (Directory.Exists("F:/文件操作专用目录/DTest/d"))
{
Directory.Delete("F:/文件操作专用目录/DTest/d");
}
GetDirectories,GetFiles
// //找F:/下面的所有目录
//string[] dics= Directory.GetDirectories("F:/");
// //找F:/下面的所有文件
// string[] files = Directory.GetFiles("F:/");
//通配符查找:?表格一个字符,*型号表示任意多个字符
string[] dics = Directory.GetDirectories("F:/文件操作专用目录/DTest", "A*");
//查找所有txt文件
string[] files = Directory.GetFiles("F:/", "*.rar");
//深层查询
string[] dics2 = Directory.GetDirectories("F:/文件操作专用目录/DTest", "A*", SearchOption.AllDirectories);
string[] files2 = Directory.GetFiles("F:\\tongji", "*.js", SearchOption.AllDirectories);
练习:
1.D盘建立C1文件夹,然后在该文件夹下建立1000个目录,0~999。
2.C1下面将所有的以9开头的文件夹全部删除。
3.C1目录下面的以8开头的文件夹全部移动到C1/0目录下。
static void Main()
{
for (int i = 0; i < 1000; i++)
{
Directory.CreateDirectory("E:\\C1\\" + i);
}
string[] nineList = Directory.GetDirectories("E:\\C1", "9*");
foreach (string path in nineList)
{
if (Directory.Exists(path))
{
Directory.Delete(path, true);
}
}
string[] eightList = Directory.GetDirectories("E:\\C1", "8*");
foreach (string path in eightList)
{
if (Directory.Exists(path))
{
//方式1,字符串截取
var lastFXGIndex = path.LastIndexOf('\\'); //找到最后一个反斜杠所在索引值
var dirName = path.Substring(lastFXGIndex + 1); //截取
//方式2,通过目录信息获取目录名
DirectoryInfo info = new DirectoryInfo(path);
Directory.Move(path, "E:\\C1\\0\\" + info.Name);
}
}
}