zoukankan      html  css  js  c++  java
  • C# 文件Copy

    C# 文件Copy

    文件Copy有以下几种方法:

    1.Copy

    string sourceFile = @"c:\temp\New Text Document.txt"; 
    string destinationFile = @"c:\temp\test.txt"; 
    bool isrewrite=true; // true=覆盖已存在的同名文件,false则反之
    System.IO.File.Copy(sourcePath, targetPath, isrewrite); 

    2.CopyTo

    string sourceFile = @"c:\temp\New Text Document.txt"; 
    string destinationFile = @"c:\temp\test.txt"; 
    FileInfo file = new FileInfo(sourceFile); 
    if (file.Exists) 
    { 
        // true is overwrite 
        file.CopyTo(destinationFile, true); 
    } 

    3.使用文件流读写来实现Copy

    #region 拷贝操作
    private void button3_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        DialogResult res = ofd.ShowDialog();
        if (res == DialogResult.OK) 
        {
            if (!string.IsNullOrEmpty(ofd.FileName))
            {
                //1.创建读入文件流对象
                FileStream streamRead = new FileStream(ofd.FileName, FileMode.Open);
                //2.创建1个字节数组,用于接收文件流对象读操作文件值
                byte[] data = new byte[1024 * 1024];//1M
                int length = 0;
                SaveFileDialog sfd = new SaveFileDialog();
                DialogResult sres = sfd.ShowDialog();
                if (sres == DialogResult.OK)
                {
                    if (!string.IsNullOrEmpty(ofd.FileName))
                    {
                        FileStream streamWrite = new FileStream(sfd.FileName, FileMode.Create);
                        do
                        {
                            //3.文件流读方法的参数1.data-文件流读出数据要存的地方,2. 0--从什么位置读,3. data.Length--1次读多少字节数据
                            //3.1 Read方法的返回值是一个int类型的,代表他真实读取 字节数据的长度,
                            length = streamRead.Read(data, 0, data.Length);//大文件读入时候,我们定义字节长度的可能会有限,如果文件超大,要接收文件流对象的Read()方法,会返回读入的实际长度
                            //加密 和解密
                            for (int i = 0; i < length; i++) 
                            {
                                 data[i] = (byte)(255 - data[i]);
                            }
                                streamWrite.Write(data, 0, length);
                        } while (length == data.Length); //如果实际写入长度等于我们设定的长度,有两种情况1.文件正好是我们设定的长度2.文件超大只上传了截取的一部分
                    }
                }
            }
        }
    }
    #endregion   
  • 相关阅读:
    设备像素比devicePixelRatio简单介绍
    详解事件代理委托
    原生dom事件注册和移除事件的封装
    idataway_前端代码规范
    170307、1分钟实现“延迟消息”功能
    170306、wamp中的Apache开启gzip压缩提高网站的响应速度
    170303、PHP微信公众平台开发接口 SDK完整版
    170302、 Apache 使用localhost(127.0.0.1)可以访问,使用本机局域网IP(192.168.2.*)不能访问
    170301、使用Spring AOP实现MySQL数据库读写分离案例分析
    170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用
  • 原文地址:https://www.cnblogs.com/grj001/p/12225288.html
Copyright © 2011-2022 走看看