C# 文件Copy

时间:2022-03-24 08:35:55

文件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