【C#文件操作:删除与文件夹操作】

C#文件操作:C#追加文件            StreamWriter sw = File.AppendText(

                Server.MapPath(".") + "\\myText.txt");

            sw.WriteLine("追逐理想");

            sw.WriteLine("kzlll");

            sw.WriteLine(".NET笔记");

            sw.Flush(); sw.Close();   C#文件操作:C#拷贝文件

            string OrignFile, NewFile;

            OrignFile = Server.MapPath(".") + "\\myText.txt";

            NewFile = Server.MapPath(".") + "\\myTextCopy.txt";

            File.Copy(OrignFile, NewFile, true);  C#文件操作:C#删除文件

            string delFile = Server.MapPath(".") + "\\myTextCopy.txt";             File.Delete(delFile);  C#文件操作:C#移动文件  

            string OrignFile, NewFile;

            OrignFile = Server.MapPath(".") + "\\myText.txt";

            NewFile = Server.MapPath(".") + "\\myTextCopy.txt";

            File.Move(OrignFile, NewFile); C#文件操作:C#创建目录

               // 创建目录c:\sixAge               DirectoryInfo d = Directory.CreateDirectory("c:\\sixAge");               // d1指向c:\sixAge\sixAge1               DirectoryInfo d1=  d.CreateSubdirectory("sixAge1");               // d2指向c:\sixAge\sixAge1\sixAge1_1               DirectoryInfo d2=  d1.CreateSubdirectory("sixAge1_1");               // 将当前目录设为c:\sixAge               Directory.SetCurrentDirectory("c:\\sixAge");               // 创建目录c:\sixAge\sixAge2               Directory.CreateDirectory("sixAge2");               // 创建目录c:\sixAge\sixAge2\sixAge2_1               Directory.CreateDirectory("sixAge2\\sixAge2_1"); 

递归删除文件夹及文件

〈%@PageLanguage=C#%〉 

        〈%@Importnamespace="System.IO"%〉 

        〈Scriptrunat=server〉 

        public void DeleteFolder(string dir) 

        { 

            //如果存在这个文件夹删除之

            if(Directory.Exists(dir))

            { 

                foreach(string d in Directory.GetFileSystemEntries(dir))

                { 

                    if(File.Exists(d))

                        File.Delete(d);//直接删除其中的文件

                    else DeleteFolder(d);//递归删除子文件夹 

                } 

                Directory.Delete(dir);

                //删除已空文件夹

                Response.Write(dir+"文件夹删除成功"); 

            }

            else //如果文件夹不存在则提示

                Response.Write(dir+"该文件夹不存在");

        } 

   

    protected void Page_Load(Object  sender,EventArgse)

    { 

        stringDir="D:\\gbook\\11"; 

        DeleteFolder(Dir);//调用函数删除文件夹

    }

        //======================================== 

        //实现一个静态方法将指定文件夹下面的所有

        //内容copy到目标文件夹下面 

        //如果目标文件夹为只读属性就会报错。 

        //April18April2005InSTU 

        //======================================== 

        public static void CopyDir(string srcPath,  string aimPath) 

        {

            try  { 

                //检查目标目录是否以目录分割字符

                //结束如果不是则添加之

                if(aimPath[aimPath.Length-1] != 

                    Path.DirectorySeparatorChar)

                    aimPath+=Path.DirectorySeparatorChar; 

                //判断目标目录是否存在如果不存在则新建之 

                if(!Directory.Exists(aimPath))

                    Directory.CreateDirectory(aimPath); 

                //得到源目录的文件列表,该里面是包含

                //文件以及目录路径的一个数组 

                //如果你指向copy目标文件下面的文件 

                //而不包含目录请使用下面的方法 

                //string[]fileList=  Directory.GetFiles(srcPath); 

                string[]fileList=

                    Directory.GetFileSystemEntries(srcPath); 

                //遍历所有的文件和目录 

                foreach(string file in fileList) 

                {  

                    //先当作目录处理如果存在这个

                    //目录就递归Copy该目录下面的文件 

                    if(Directory.Exists(file)) 

                        CopyDir(

                            file,

                            aimPath+Path.GetFileName(file)); 

                    //否则直接Copy文件

                    else

                        File.Copy(

                            file,

                            aimPath+Path.GetFileName(file),

                            true);

                } 

            } 

            catch(Exception e)

            {

                MessageBox.Show(e.ToString()); 

            } 

        } 

   

    //======================================== 

    //实现一个静态方法将指定文件夹下面的所有内容Detele 

    //测试的时候要小心操作,删除之后无法恢复。

    //April18April2005InSTU 

    //======================================== 

    public static void DeleteDir(string aimPath) 

    { 

        try

        {

            //检查目标目录是否以目录分割

            //字符结束如果不是则添加之

            if(aimPath[aimPath.Length-1] !=

                Path.DirectorySeparatorChar)

                aimPath+=Path.DirectorySeparatorChar;

            //得到源目录的文件列表,该里面是

            //包含文件以及目录路径的一个数组

            //如果你指向Delete目标文件下面的

            //文件而不包含目录请使用下面的方法 

            //string[]fileList=  Directory.GetFiles(aimPath); 

            string[]fileList= 

                Directory.GetFileSystemEntries(aimPath); 

            //遍历所有的文件和目录

            foreach(string file in fileList) 

            {

                //先当作目录处理如果存在这个

                //目录就递归Delete该目录下面的文件

                if(Directory.Exists(file)) 

                {

                    DeleteDir(

                        aimPath+Path.GetFileName(file)); 

                } 

                //否则直接Delete文件

                else

                {

                    File.Delete(

                        aimPath+Path.GetFileName(file));

                } 

            } 

            //删除文件夹

            System.IO.Directory.Delete(aimPath,true); 

        } 

        catch(Exceptione) 

        { 

            MessageBox.Show(e.ToString()); 

        }

    }   需要引用命名空间:

    using System.IO;  

///〈summary〉 

        ///拷贝文件夹(包括子文件夹)到指定文件夹下, 

        ///源文件夹和目标文件夹均需绝对路径. 

        ///格式:CopyFolder(源文件夹,目标文件夹); 

        ///〈/summary〉 

        ///〈paramname="strFromPath"〉

        ///〈/param〉

        ///〈paramname="strToPath"〉〈/param〉  

        //----------------------------------------

        //作者:明天去要饭QQ:305725744 

        //---------------------------------------- 

        public static void CopyFolder(

            string strFromPath,

            string strToPath)

        {

            //如果源文件夹不存在,则创建 

            if (!Directory.Exists(strFromPath))

            {

                Directory.CreateDirectory(strFromPath);

            }

            //取得要拷贝的文件夹名 

            stringstrFolderName = strFromPath.Substring(

                strFromPath.LastIndexOf("\\") + 1,

                strFromPath.Length -

                strFromPath.LastIndexOf("\\") - 1);

            //如果目标文件夹中没有源文件夹

            //则在目标文件夹中创建源文件夹

            if (!Directory.Exists(

                strToPath + "\\" + strFolderName))

            {

                Directory.CreateDirectory(

                    strToPath + "\\" + strFolderName);

            }

            //创建数组保存源文件夹下的文件名 

            string[] strFiles =

                Directory.GetFiles(strFromPath);

            //循环拷贝文件

            for (inti = 0; i < strFiles.Length; i++)

            {

                //取得拷贝的文件名,只取文件名,地址截掉。

                stringstrFileName = strFiles[i].Substring(

                    strFiles[i].LastIndexOf("\\") + 1,

                    strFiles[i].Length -

                    strFiles[i].LastIndexOf("\\") - 1);

                //开始拷贝文件,true表示覆盖同名文件 

                File.Copy(

                    strFiles[i],

                    strToPath + "\\" + strFolderName +

                    "\\" + strFileName,

                    true);

            }

            //创建DirectoryInfo实例 

            DirectoryInfodirInfo =

                new DirectoryInfo(strFromPath);

            //取得源文件夹下的所有子文件夹名称

            DirectoryInfo[] ZiPath =

                dirInfo.GetDirectories();

            for (int j = 0; j < ZiPath.Length; j++)

            {

                //获取所有子文件夹名 

                stringstrZiPath = strFromPath + "\\" +

                    ZiPath[j].ToString();

                //把得到的子文件夹当成新的

                //源文件夹,从头开始新一轮的拷贝

                CopyFolder(

                    strZiPath,

                    strToPath + "\\" + strFolderName);

            }

        }

posted @ 2013-10-09 10:35  来自你520的末班车  阅读(399)  评论(0编辑  收藏  举报