C# 批量复制文件

简介:

正题
    我是直接新建的一个aspx并在后台代码里写的,帖cs代码:
 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.IO;
using  System.Data.SqlClient;

public  partial  class  page_FilesAsEasy : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        ArrayList arr 
=   new  ArrayList();
        SqlConnection conn 
=   new  SqlConnection();
        conn.ConnectionString 
=   @" Data Source=.\;Initial Catalog=test;User ID=test;Password=test " ;
        conn.Open();
        
string  sqlcmd;
        sqlcmd 
=   @" select * from test " ;
        SqlCommand cmd 
=   new  SqlCommand(sqlcmd, conn);
        SqlDataReader sdr 
=  cmd.ExecuteReader();
        
while  (sdr.Read())
        {
            FileVO vo 
=   new  FileVO();
            vo.Client_Name 
=  sdr[ " clientname " ].ToString();
            vo.Client_ID 
=  sdr[ " linkshop " ].ToString();
            vo.Category 
=  sdr[ " category " ].ToString();
            vo.Filename 
=  sdr[ " filename " ].ToString();
            arr.Add(vo);
        }
        sdr.Close();
        conn.Dispose();

        Response.Write(
" 开始拷贝文件..<br/><br/> " );
        Response.Flush();

        
foreach  ( object  var  in  arr)
        {
            
try
            {
                FileVO item 
=  (FileVO)var;
                
// 这是经过重新命名的文件的path
                 string  from  =   @" E:\files\ "   +  item.Client_ID.Trim()  +   " _ "   +  item.Category.Trim()  +   " _ "   +  item.Filename.Trim()  +   " .xls " ;
                
string  Category  =   string .Empty;
                
switch  (item.Category)
                {
                    
case   " 1 " :
                        Category 
=   " 出售 " ;
                        
break ;
                    
case   " 2 " :
                        Category 
=   " 出租 " ;
                        
break ;
                    
default :
                        Category 
=   " 购入 " ;
                        
break ;
                }
                
// 重新命名
                 string  to  =   @" F:\xlsdata\ "   +  item.Client_Name.Trim()  +   " _ "   +  Category.Trim()  +   " .xls " ;
                
// 拷贝文件
                File.Copy(from, to,  true );
                
// 设置文件属性
                File.SetAttributes(to, FileAttributes.Normal);
            }
            
catch  (Exception ex)
            {
                Response.Write(ex.Message 
+   " <br/> " );
                
return ;
            }
        }
        Response.Write(
" <br/>拷贝文件结束.. " );
    }
    
class  FileVO
    {
        
private   string  _Client_ID;
        
///   <summary>
        
///  客户代号
        
///   </summary>
         public   string  Client_ID
        {
            
get  {  return  _Client_ID; }
            
set  { _Client_ID  =  value; }
        }

        
private   string  _Category;
        
///   <summary>
        
///  业务类型
        
///   </summary>
         public   string  Category
        {
            
get  {  return  _Category; }
            
set  { _Category  =  value; }
        }

        
private   string  _Filename;
        
///   <summary>
        
///  文件名
        
///   </summary>
         public   string  Filename
        {
            
get  {  return  _Filename; }
            
set  { _Filename  =  value; }
        }

        
private   string  _Client_Name;
        
///   <summary>
        
///  客户名称
        
///   </summary>
         public   string  Client_Name
        {
            
get  {  return  _Client_Name; }
            
set  { _Client_Name  =  value; }
        }
    }
}

注意:
    这里最关键是以下两句代码:
 

// 拷贝文件
File.Copy(from, to,  true );
// 设置文件属性
File.SetAttributes(to, FileAttributes.Normal);

特别是第二句,我花了许多时间才找到的,如果你不加这句话,那会报以下错误:
 

The process cannot access the file 'F:\xlsdata\xxx_xxx.xls' because it is being used by another process.


OK!!批量重命名复制成功!



本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/586505,如需转载请自行联系原作者

相关文章
|
7月前
快速批量重命名文件(夹)
该文介绍了如何使用一个工具进行文件批量处理,包括重命名和删除特定文字。首先,从百度网盘或蓝奏云获取工具,然后打开工具进入文件批量复制功能。选择“重命名”,将需要改名的文件拖入,按照示例改为指定格式。接着,利用“文字批量替换规则”去除文件名中的特定文字,如“文本”。设定规则后保存并执行,通过“以此参照执行”应用规则。最后,将文件拖入并执行,即可完成批量重命名或清理文件名中的无效文字。
|
7月前
批量文件改名工具
批量文件改名工具
|
3月前
|
Linux Windows
Windows系统批量创建文件夹的技巧
Windows系统批量创建文件夹的技巧
120 1
|
7月前
讲解:如何根据txt文本列出的文件名批量查找指定文件夹里的文件并复制到新的文件夹里 , 按照文件名批量复制文件 , 根据文件名批量复制 , 通过文件名批量复制文件
该文介绍了一款批量文件处理软件,用于解决三类问题:依据文件名清单批量复制图片、筛选PDF文件及删除指定文件。用户可从百度或腾讯下载链接获取软件。操作步骤包括加载文件夹、输入文件名清单、设置目标位置、选择操作类型(复制、剪切或删除)及匹配方式,然后开始查找。软件能快速处理大量文件,提高办公效率,避免手动操作。查找结果会显示在特定文件夹和日志中,记录每个操作详情。
754 5
|
7月前
如何批量复制多个文件到多个目录中(批量复制文件,多对多文件高效操作的方法)
该文介绍了如何使用一个工具进行文件批量复制的操作。首先,提供了百度网盘和蓝奏云的链接,附有提取码,以获取所需工具。接着,展示了一个包含三个文件夹和两张图片的示例。操作步骤包括:打开工具,使用Ctrl+5进入批量复制模块,选择图片并拖拽至复制区域,然后选择目标文件夹(在这里是三个命名的空文件夹),点击“开始复制”,等待过程完成。工具提供复制选项供用户按需选择,且支持保存操作路径以备后续使用。完成后,目标文件夹将包含复制的图片,整个过程简便快捷。
|
7月前
|
Windows
推荐:如何批量根据PDF文件名批量查找PDF文件,复制到指定地方保存,通过文件名批量复制文件,按照文件名批量复制文件,根据文件名批量提取文件
该文介绍了一个批量查找PDF文件(不限于找PDF)的工具,用于在多级文件夹中快速查找并复制特定文件。通过下载提供的软件,用户可以加载PDF库,输入文件名列表,设置操作参数(如保存路径、复制或删除)及搜索模式。软件能高效执行,例如在1.1秒内完成对数千文件中的37个目标文件的复制,显著提升了工作效率,避免了手动逐个查找和复制的繁琐。
637 0
|
7月前
|
存储 定位技术 Python
批量将文件名称符合要求的文件自动复制到新文件夹:Python实现
批量将文件名称符合要求的文件自动复制到新文件夹:Python实现
111 2
|
机器学习/深度学习 Python
利用python脚本批量重命名文件
利用python脚本批量重命名文件
258 0
VBS实现批量重命名文件并且操作前备份原有文件
'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.
935 0
|
Web App开发 C#