C#常用的文件操作

        //=======================================================================
        //拷贝文件夹,直接覆盖         
        //=======================================================================        
        private void CopyFolder(string _originalPath, string _targetPath)
        {
            //=======================================
            //检查要拷贝的文件夹是否存在于目标路径中,如果不存
            //则创建它
            //=======================================

            //获取要拷贝的文件夹名称
            string _originalFolderName = _originalPath.Substring(_originalPath.LastIndexOf("//") + 1, _originalPath.Length - (_originalPath.LastIndexOf("//")+1));
            if (!Directory.Exists(_targetPath + "//" + _originalFolderName))
            {//如果不存在,则在目标路径中创建该文件夹
                Directory.CreateDirectory(_targetPath + "//" + _originalFolderName);
            }



            //=======================================
            //检查要拷贝的文件夹是否存在于目标路径中,如果不存
            //则创建它
            //=======================================

            string[] _rootFolderChildNames=null;//存放该文件夹下子文件夹名称的数组
            string[] _childFileNames=null;//存放该文件夹下文件名称的数组
            try
            {
                //获取原路径下的所有子文件夹名称
                _rootFolderChildNames = Directory.GetDirectories(_originalPath);
            }
            catch (Exception)
            { }

            if (_rootFolderChildNames != null && _rootFolderChildNames.Length !=0)
            {//如果原路径下存在子文件夹,则使用递归
                foreach (string _item in _rootFolderChildNames)
                {
                    CopyFolderB( _item, _targetPath + "//" + _originalFolderName);
                }
            }

            
            //如果原路径下不存在子文件夹,则检索原路径下的文件
            try
            {
                _childFileNames = Directory.GetFiles(_originalPath);
            }
            catch (Exception)
            { }

            if (_childFileNames !=null && _childFileNames.Length !=0)
            {//如果原路径下存在子文件,则将原路径下所有子文件拷贝到目标路径下
                foreach (string _item in _childFileNames)
                {
                    //获取文件名称
                    string _itemFileName=_item.Substring (_item.LastIndexOf ("//")+1,_item.Length -(_item.LastIndexOf("//")+1));
                    //拷贝原文件到目标路径下
                    File.Copy(_item, _targetPath + "//" + _originalFolderName + "//" + _itemFileName,true);
                }
            }
        }          




        //=======================================================================       
        //删除目录,不可恢复的        
        //=======================================================================
        private void DeleteFolder(string _strPath)
        {
           
            string[] _rootFolderChildNames = null;//存放该文件夹下子文件夹名称的数组
            string[] _childFileNames = null;//存放该文件夹下文件名称的数组
            try
            {
                //获取原路径下的所有子文件夹名称
                _rootFolderChildNames = Directory.GetDirectories(_originalPath);
            }
            catch (Exception)
            { }

            if (_rootFolderChildNames != null && _rootFolderChildNames.Length != 0)
            {
                foreach (string _item in _rootFolderChildNames)
                {   
                    //使用递归检索子文件夹内容
                    CopyFolderB(_item, _targetPath + "//" + _originalFolderName);
                    //删除子文件加
                    File.Delete(_item);
                }
            }


            //如果原路径下不存在子文件夹,则检索原路径下的文件
            try
            {
                _childFileNames = Directory.GetFiles(_originalPath);
            }
            catch (Exception)
            { }

            if (_childFileNames != null && _childFileNames.Length != 0)
            {//如果原路径下存在子文件,则将原路径下所有子文件删除
                foreach (string _item in _childFileNames)
                {
                    File.Delete(_item);
                }
            }
        }
    }



    打开文本文件 
    StreamReader sr = File.OpenText(Server.MapPath(".")+"//myText.txt");  
    StringBuilder output = new StringBuilder();  
    string rl;  
    while((rl=sr.ReadLine())!=null)  
    {  
        output.Append(rl+"");  
    }  
    lblFile.Text = output.ToString();  
    sr.Close();  
      
     
    C#追加文件 
        StreamWriter sw = File.AppendText(Server.MapPath(".")+"//myText.txt");  
        sw.WriteLine("追逐理想");  
        sw.WriteLine("kzlll");  
        sw.WriteLine(".NET笔记");  
        sw.Flush();  
        sw.Close();  
    C#拷贝文件 
            string OrignFile,NewFile;  
            OrignFile = Server.MapPath(".")+"//myText.txt";  
            NewFile = Server.MapPath(".")+"//myTextCopy.txt";  
            File.Copy(OrignFile,NewFile,true);  
    C#删除文件 
            string delFile = Server.MapPath(".")+"//myTextCopy.txt";  
            File.Delete(delFile);  
    C#移动文件 
          string OrignFile,NewFile;  
          OrignFile = Server.MapPath(".")+"//myText.txt";  
          NewFile = Server.MapPath(".")+"//myTextCopy.txt";  
          File.Move(OrignFile,NewFile);  

    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");  
     
    递归删除文件夹及文件 

    private 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+"  该文件夹不存在");  //如果文件夹不存在则提示  
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值