Ch6 目录与文件操作习题解答
1. 简要回答Directory类与DirectoryInfo类有何区别,二者分别适合什么场合?
【解答】Directory类和DirectoryInfo类均可用于对磁盘和目录进行管理,如复制、移动、重命名、创建、删除目录等。两个类的不同点在于DirectoryInfo类提供了更详细的功能,而且必须被实例化后才能使用,而Directory类则只提供了常用的静态方法。
程序中如果多次使用某个对象,一般用DirectoryInfo类;但是如果只使用一次,由于创建、销毁实例花费的时间比较长,其效率没有直接用Directory类提供的静态方法高。如果仅执行某一个操作,则使用Directory类提供的静态方法效率更高一些。。
2.编写程序,用Directory类提供的方法确定指定的目录是否存在,如果不存在,则创建该目录。然后在其中创建一个文件,并将一个字符串写到文件中。
【解答】
程序清单如下:
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\MyDir";
try
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
StreamWriter sw=File.CreateText(path+@"\myfile.txt");
sw.WriteLine("This is a String!");
sw.Close();
}
catch (Exception e)
{
Console.WriteLine("操作失败: {0}", e.ToString());
}
Console.ReadLine();
}
}
3.编写程序,使用File类实现删除指定目录下的指定文件。
【解答】
程序清单如下:
using System;
using System.IO;
class FileTest
{
public static void Main()
{
Console.WriteLine("确认删除当前目录下的所有文件?");
Console.WriteLine("点击'Y'键继续,其它键取消操作");
int a = Console.Read();
if(a == 'Y' || a == 'y'){
Console.WriteLine("正在删除文件...");
}
else
{
Console.WriteLine("用户取消操作");
return;
}
Directory Info dir = new Directory Info (".");
foreach (File Info f in dir.GetFiles())
{
f.Delete();
}
Console.ReadLine();
}
}
4. 编写程序使用StreamReader和StreamWriter完成文本文件的读写。功能要求:创建C:\test.txt文件,并往文件中写入一些数据,然后再打开该文件,读出该文件的内容。
【解答】源程序清单如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string filePath = @"c:\text.txt";
Console.WriteLine("使用StreamWriter写入字符串到文本文件中");
StreamWriter sw = File.CreateText(filePath);
sw.WriteLine("This is a string.This is a string.");
sw.Close();
Console.WriteLine("使用StreamReader读取文本文件到控制台");
StreamReader sr = File.OpenText(filePath);
while (sr.Peek() != -1)
{
Console.WriteLine(sr.ReadLine());
}
Console.ReadLine();
}
}
}