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

    文件Copy有以下几种方法:

    1.Copy

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

     2.CopyTo

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

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

    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.文件超大只上传了截取的一部分
    
                    }
    
                }
    
            }
    
        }
    
    }
    
  • 相关阅读:
    find
    Spring 中——————ClassPathResource初学
    Cookie 、Session、Token的学习
    JAVA注解之实现原理
    JAVA注解---2
    JAVA注解————1
    函数式遍程----Function
    java 反射的学习实践2
    Spring AOP 之动态代理源码分析
    正则表达式之Pattern.MULTILINE Pattern.DOTALL
  • 原文地址:https://www.cnblogs.com/rosesmall/p/9051147.html
Copyright © 2011-2022 走看看