欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中使用FilleStream实现视频文件的复制功能

程序员文章站 2022-03-11 08:52:58
实现 新建控制台程序 在main方法中 //复制源路径 string source = @"d:\音乐迷\音乐迷\mv\消愁-毛不易.mp4";...

实现

新建控制台程序

在main方法中

//复制源路径
string source = @"d:\音乐迷\音乐迷\mv\消愁-毛不易.mp4";
//复制目的路径
string target = @"c:\users\administrator\desktop\霸道的程序猿.mp4";
copyfile(source,target);
console.writeline("复制成功");
console.readkey();

然后实现复制视频文件的方法

public static void copyfile(string source,string target)
    {
      //创建一个负责读取的流
      using (filestream fsread = new filestream(source, filemode.openorcreate, fileaccess.read))

      {
        //创建一个负责写入的流
        using (filestream fdwrite = new filestream(target,filemode.openorcreate,fileaccess.write))
        {
          // 5 兆的字节数组
          byte[] buffer = new byte[1024*1024*5];
          //因为文件可能会比较大,所以我们在读取的时候 应该通过一个循环去读取
          while (true)
          {
            //返回本次读取实际读取到的字节数
            int r = fsread.read(buffer, 0, buffer.length);
            //如果返回一个0 也就意味着什么都没有读取到 即读取完了
            if (r == 0)
            {
              break;
            }
            fdwrite.write(buffer,0,r);
          }

          
        }
      }
    }

运行效果

C#中使用FilleStream实现视频文件的复制功能

知识点扩展:c#使用filestream复制多媒体文件,具体代码如下所示:

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.io;
namespace 多媒体文件复制
{
  class program
  {
    static void main(string[] args)
    {
      //先读取出来,再写入到指定路径
      string source = @"c:\123\123.avi";
      string target = @"c:\123\456.avi";
      copyfile(source, target);
    }
    public static void copyfile(string source, string target)
    {
      //创建一个读取的流
      using (filestream fsread = new filestream(source, filemode.openorcreate, fileaccess.read))
      {
        //创建一个写入的流
        using (filestream fswrite = new filestream(target, filemode.openorcreate, fileaccess.write))
        {
          //每次读取5m大小
          byte[] buffer = new byte[1024 * 1024 * 5];
          //文件可能比较大,循环去读
          while (true)
          {
            //本次实际读取到的字节数
            int r = fsread.read(buffer, 0, buffer.length);
            //如果读取到的字节数为0,则意味着读完了
            if (r == 0)
            {
              break;
            }
            fswrite.write(buffer, 0, r);
          }
        }
      }
    }
  }
}

总结

以上所述是小编给大家介绍的c#中使用fillestream实现视频文件的复制功能,希望对大家有所帮助