当前位置: 首页 > news >正文

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.
本文转自博客园农民伯伯的博客,原文链接:C# 批量复制文件,如需转载请自行联系原博主。

相关文章:

  • linux 搭建基于域名的虚拟主机
  • 40个新鲜出炉的 Photoshop 优秀教程
  • linux 正则表达式
  • EA使用教程
  • JS编程建议——6:正确处理JavaScript特殊值(2)
  • 利用jQuery选择将被操作的元素
  • parted命令分区
  • 用python怎样实现接口测试
  • JSP语法1
  • iOS 画板 涂鸦 答题
  • poj 1475 Pushing Boxes
  • 初识 ActivityLifecycleCallbacks
  • Zim - 普通人的Org-mode
  • 带参数存储过程的小例子
  • NSLog输出对象
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Angular Elements 及其运作原理
  • avalon2.2的VM生成过程
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • flask接收请求并推入栈
  • Flex布局到底解决了什么问题
  • Octave 入门
  • Spark学习笔记之相关记录
  • Spring Boot快速入门(一):Hello Spring Boot
  • ubuntu 下nginx安装 并支持https协议
  • 电商搜索引擎的架构设计和性能优化
  • 和 || 运算
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 正则与JS中的正则
  • 移动端高清、多屏适配方案
  • #、%和$符号在OGNL表达式中经常出现
  • $NOIp2018$劝退记
  • (2)Java 简介
  • (笔试题)分解质因式
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (一)基于IDEA的JAVA基础1
  • (转载)CentOS查看系统信息|CentOS查看命令
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Core Web APi类库如何内嵌运行?
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @Transactional类内部访问失效原因详解
  • [BJDCTF 2020]easy_md5
  • [C#]DataTable常用操作总结【转】
  • [C/C++]数据结构 栈和队列()
  • [C++]:for循环for(int num : nums)
  • [hdu4622 Reincarnation]后缀数组
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页
  • [iOS]随机生成UUID通用唯一识别码
  • [LeetCode]Multiply Strings
  • [MySQL数据库部署及初始化相关]
  • [nlp] 损失缩放(Loss Scaling)loss sacle
  • [PTP][1588v2] Delay_Resp消息