• 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.文件超大只上传了截取的一部分
    
                    }
    
                }
    
            }
    
        }
    
    }
    
  • 相关阅读:
    美国商务签证面试经历
    正则表达式匹配字符串中的数值部分并将其返回
    在WPF中使用水晶报表for vs2010的方法
    Wpf中用代码执行控件的单击事件
    WPF项目中使用水晶报表for vs2010时的一个找不到程序集的问题
    WinForm实现全屏方法
    wpf中将数据导出为Excel
    WinForm实现窗体上控件的自由拖动
    在WPF中使用WinForm控件方法
    多样、互动的WinForm UI设计与开发思路(Flash、Html等)
  • 原文地址:https://www.cnblogs.com/rosesmall/p/9051147.html
Copyright © 2020-2023  润新知