using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace _5_8
{
    class Program
    {
        const string base_path = @"E:\c#\c#_net\chuck";
        static void Main(string[] args)
        {
            //如果打算多次重用某个对象,可考虑使用 DirectoryInfo 的实例方法,而不是 Directory 类的相应静态方法,因为并不总是需要安全检查。
            //create directory
            DirectoryInfo dir = Directory.CreateDirectory(base_path); //按 base_path 的指定创建所有目录和子目录
            //create subdirectories
            string path = null;
            for (int i = 0; i < 10; i++)
            {
                path=base_path+"\\sub"+i;
                DirectoryInfo subdir = dir.CreateSubdirectory("sub"+i);
                Directory.SetCurrentDirectory(subdir.FullName);
                for (int j = 0; j < i; j++)
                {
                    subdir.CreateSubdirectory("subsub" + j);
                }
                Directory.SetCurrentDirectory(path); //将当前工作的目录重新指向path,因为上面创建了子目录,工作目录在子目录中。
}
            Console.WriteLine(Directory.GetCurrentDirectory());
            createfile();
            Directory.Delete(base_path + "\\sub" + 4, true);
            //目录的移动,两种方法。上面dir目录的创建也可以用DirectoryInfo的create()方法。(但是调用之前得创建DirectoryInfo对象,并判断目录是否存在)
            //Directory.CreateDirectory(base_path);  好像不会发生 如果base_path存在的异常。
            
//Directory.Move(base_path + "\\sub" + 3, base_path + "\\sub" + 4); //这方法也可以
            DirectoryInfo sub3 = new DirectoryInfo(base_path + "\\sub" + 3);
            sub3.MoveTo(base_path + "\\sub" + 4);
        }
        private static void createfile()
        {
            FileStream fs = new FileStream("test.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.None);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("testing");
            sw.Flush();
            sw.Close();
        }
    }
}

评论