用C#实现对目录,文件的各种操作

本文实例主要是参考朱晔的《asp.net第一步》一书,全部代码均可用。Main()函数中的一些目录是我本机的目录,大家可以改一些。
全文通过新建一个类IOHelper实现如下功能:
1,读取驱动器信息
2,显示,创建以及删除目录
3,创建,显示以及删除文件
4,对文件进行读写操作。
基本用到的类有:DriveInfo, Directory,DirectoryInfo,FileInfo,FileStream,File,StreamReader,StreamWriter
using System;
using System.Collections.Generic;
using System.IO;

public class IOHelper
{
    #region//列出驱动器信息
    public void ListDrive()
    {
        DriveInfo[] drives=DriveInfo.GetDrives();
        Console.WriteLine("驱动器名称\t类型\t格式\t空间大小\t可用空间");
        foreach(DriveInfo di in drives)
        {
            //Console.WriteLine(string.Format("{0}\t\t{1}\t{2}\t{3}\t{4}",di.Name,di.DriveType,di.DriveFormat,di.TotalSize,di.TotalFreeSpace));
            Console.WriteLine("{0}--{1}",di.Name,di.DriveType);
        }
    }
    #endregion
   
    #region//列出,创建,删除目录
    public void ListFolder(string sDir)
    {
        if(Directory.Exists(sDir))
        {
            DirectoryInfo di=new DirectoryInfo(sDir);
            Console.WriteLine("目录创建时间\t\t目录名");
            foreach(DirectoryInfo dir in di.GetDirectories())
                Console.WriteLine("{0}\t{1}",dir.CreationTime,dir.Name);           
        }
        else
            Console.WriteLine("{0}不存在",sDir);
    }
   
    public void CreateFolder(string sDir)
    {
        Directory.CreateDirectory(sDir);
        Console.WriteLine("创建目录>>{0}",sDir);
    }
   
    public void DeleteFolder(string sDir)
    {
        if(Directory.Exists(sDir))
        {
            Directory.Delete(sDir);
            Console.WriteLine(string.Format("删除目录>>{0}",sDir));
        }
    }
    #endregion
   
    #region //显示,创建,删除文件
    public void ListFile(string sDir)
    {
        if(Directory.Exists(sDir))
        {
            //使用一个绝对路径初始化一个目录的对象使
            DirectoryInfo di=new DirectoryInfo(sDir);
            //遍历目录(不包括子目录)中的文件
            Console.WriteLine(string.Format("文件创建时间\t\t文件名\t\t文件大小"));
            foreach(FileInfo file in di.GetFiles())
                Console.WriteLine("{0}\t{1}\t{2}",file.CreationTime,file.Name,file.Length);
        }
        else
            Console.WriteLine("目录不存在{0}",sDir);
    }
   
    public void CreateFile(string sFile)
    {
        //获取一个文件流对象用于读写文件
        FileStream fs=File.Create(sFile);
        //获取一个指向文件的流编辑器
        StreamWriter sw=new StreamWriter(fs);
        //写入文本
        sw.WriteLine("编程快乐!");
        //关闭对象释放资源
        sw.Close();
        fs.Close();
        Console.WriteLine(string.Format("创建文件>>{0}",sFile));
    }
   
    public void DeleteFile(string sFile)
    {
        if(File.Exists(sFile))
        {
            File.Delete(sFile);
            Console.WriteLine("删除文件>>{0}",sFile);
        }
    }
    #endregion
   
    #region//对文件进行读写
    public void ReadFile(string sFile)
    {
        if(File.Exists(sFile))
        {
            FileStream fs=File.OpenRead(sFile);
            StreamReader sr=new StreamReader(fs);
            string data=sr.ReadToEnd();
            sr.Close();
            fs.Close();
            Console.WriteLine("读取文件>>{0}",sFile);
            Console.WriteLine(data);
        }
        else
            Console.WriteLine(string.Format("文件不存在{0}",sFile));
    }
   
    public void AppendFile(string sFile)
    {
        if(File.Exists(sFile))
        {
            StreamWriter sw=File.AppendText(sFile);
            sw.WriteLine();
            sw.Write("abcdndgf");
            sw.Close();
            Console.WriteLine("追加文件>>{0}",sFile);
        }
        else
            Console.WriteLine(string.Format("{0}不存在",sFile));
    }
    #endregion
}
public class Program
{
    public static void Main()
    {
        IOHelper test=new IOHelper();
        //test.ListDrive();
       
        //test.ListFolder(@"D:\test\c#");
        //test.CreateFolder(@"D:\test\c#\base\IOTest");
        //test.DeleteFolder(@"D:\test\c#\base\iohelper");
       
//        test.ListFile(@"D:\test\c#\base\IOTest");
//        test.CreateFile(@"D:\test\c#\base\IOTest\test.txt");
//        test.DeleteFile(@"D:\test\c#\base\IOTest\1.txt");
       
       
        test.AppendFile(@"D:\test\c#\base\IOTest\test.txt");
        test.ReadFile(@"D:\test\c#\base\IOTest\test.txt");
        Console.ReadLine();
    }
}
希望大家可以交流,共同学习。
posted @ 2007-11-02 17:46  范文轩  阅读(859)  评论(0编辑  收藏  举报