0
点赞
收藏
分享

微信扫一扫

【C#随手记】使用文件流实现文件的拷贝

雨鸣静声 2022-02-11 阅读 33

需要引入的命名空间 : System.IO

C#已经封装好的文件拷贝API:

System.IO.File.Copy(); //文件拷贝

System.IO.File.ReadAllBytes(); //读取文件的所有字节组

System.IO.File.WriteAllBytes(); //将字节组写入文件

下面将自己动手,使用文件流的读取和写入的方式来实现文件的拷贝,主要分为三步:

    public string filePath = @"C:\Users\Njiyue\Desktop\ddd.jpg";
    public string copyToPath = @"C:\Users\Njiyue\Desktop\新建文件夹\ccc.jpg";


    private void Test()
    {
        #region 第一步: 获取 两个文件的  “流”
        FileInfo oneFileInfo = new FileInfo(filePath);
        if (!File.Exists(copyToPath))
            File.Create(copyToPath);//如果没有目标文件,就创建一个
        FileInfo twoFileInfo = new FileInfo(copyToPath);

        FileStream fs1 = oneFileInfo.OpenRead();//读取文件,将文件转换成字节文件
        FileStream fs2 = twoFileInfo.OpenWrite();//写入文件,将文件转换成字节文件
        #endregion


        #region 第二步: 循环读取写入
        byte[] buff = new byte[2048];//一次要读写2048个字节
        int contentLen = fs1.Read(buff, 0, 2048);//读取文件的2048个字节,并缓存给buff字节组,返回读取长度,如果长度低于2048,说明读到尾部了,如果等于0,说明没有字节可读了
        //循环读取操作
        while (contentLen != 0)
        {
            fs2.Write(buff, 0, contentLen); //重点方法,将流写入
            contentLen = fs1.Read(buff, 0, 2048);//调用一次,会依次读取 下一个2048字节
        }
        #endregion


        #region 第三步:关闭读写进程
        //关闭读写操作,以免占用文件
        fs1.Close();
        fs2.Close();
        fs1 = fs2 = null;
        #endregion
    }
举报

相关推荐

0 条评论