C# 文件夹及子文件夹的删除与拷贝

删除文件夹

/// <summary>
        /// 删除文件夹
        /// </summary>
        /// <param name="dir"></param>
        public static void DeleteFolder(string dir)
        {
            foreach (string d in Directory.GetFileSystemEntries(dir))
            {
                if (File.Exists(d))
                {
                    FileInfo fi = new FileInfo(d);
                    if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
                    {
                        fi.Attributes = FileAttributes.Normal;
                    }
                    //直接删除其中的文件   
                    File.Delete(d);
                }
                else
                {
                    //递归删除子文件夹  
                    DeleteFolder(d);
                }
            }
            DirectoryInfo di = new DirectoryInfo(dir);

            if (di.Attributes.ToString().IndexOf("ReadOnly") != -1)
            {
                di.Attributes = FileAttributes.Normal;
            }
            //删除已空文件夹   
            Directory.Delete(dir);
        }

拷贝文件夹

/// <summary>          
        /// Copy文件夹          
        /// </summary>         
        /// <param name="sPath">源文件夹路径</param>          
        /// <param name="dPath">目的文件夹路径</param>          
        /// <returns>完成状态:success-完成;其他-报错</returns>          
        public static string CopyFolder(string sPath, string dPath)         
        {              
            string flag = "success";             
            try            
            {              
                // 创建目的文件夹          
                if (!Directory.Exists(dPath))        
                {             
                    Directory.CreateDirectory  (dPath);         
                }                
                // 拷贝文件            
                DirectoryInfo sDir = new DirectoryInfo(sPath);        
                FileInfo[] fileArray = sDir.GetFiles();         
                foreach (FileInfo file in fileArray)           
                {                  
                    file.CopyTo(dPath + "\\" + file.Name, true);        
                }                 
                // 循环子文件夹            
                DirectoryInfo dDir = new DirectoryInfo(dPath);      
                DirectoryInfo[] subDirArray = sDir.GetDirectories();       
                foreach (DirectoryInfo subDir in subDirArray)                  
                {                
                    CopyFolder(subDir.FullName, dPath + "//" + subDir.Name);  
                }           
            }            
            catch (Exception ex)    
            {              
                flag = ex.ToString();     
            }           
            return flag;      
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值