文件读写断点问题

 FileStream fs;//创建读写文件的流对象,在文件中读写字节, (FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作)
            Stream stream;
            //操作字符的数据的流对象。
           
            byte[] byt = new byte[512];//创建一个字节数组;
            if (System.IO.File.Exists(ServerPath))//确定指定的文件是否存在
            {
                stream = System.IO.File.OpenWrite(ServerPath);//File.OpenRead只读方式打开文件进行写入,这种方式效率高并且快

                stream.Seek(stream.Length, SeekOrigin.Current);//设定在当前流的位置(Current表示新位置的参考点,length表示该参考点的字节偏移量)
                fs = System.IO.File.OpenRead(LocPath);//要打开以进行读取的文件
                fs.Seek(fs.Length, SeekOrigin.Current);//(SeekOrigin提供流中的参考点)将该流的当前位置设置为给定值,
                //current将当前位置指定为参考点,相对于该参考点的点,从改点开始查找//返回流的新位置
                int nReadSize = stream.Read(byt, 0, 512);//从流中读取字节块并将该数据写入给定缓冲区中
                //offset 参数给出 array 中字节的偏移量(缓冲区索引),从此处开始读取,count 参数给出从此流最多读取的字节数。返回的值是读取字节的实际数量,或如果到达流的结尾,则该值为零。如果读操作成功,则流的当前位置前进读取的字节数。如果发生异常,则流的当前位置不变。

                //只有在到达流的末尾后,Read 方法才返回零。否则,Read 在返回前始终至少从流读取一个字节。如果在调用 Read 之后流中无可用数据,则该方法将一直阻止,直到至少可返回一个字节的数据。即使尚未到达流的末尾,实现仍可以随意返回少于所请求的字节

                while (nReadSize > 0)//判断是否到达流的末尾
                {
                    fs.Write(byt, 0, 512);/ffer字节数组。此方法将 count 个字节从 buffer 复制到当前流。 
                    //offset,buffer 中的从零开始的字节偏移量,从此处开始将字节复制到当前流。 
                    // count要写入当前流的字节数。 

                    nReadSize = stream.Read(byt, 0, 512);//继续读取直到流字节为0
                }
                stream.Close();
                fs.Close();
               
            }

            else
            {
                fs = System.IO.File.Create(ServerPath);
                stream = System.IO.File.OpenRead(LocPath);
                stream.Seek(0, SeekOrigin.Begin);
                int ReadSize = stream.Read(byt, 0, 512);
                while (ReadSize > 0)
                {
                    fs.Write(byt, 0, 512);
                    ReadSize = stream.Read(byt, 0, 512);
                }
                stream.Close();
                fs.Close();
            }

        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (FileUpload1.PostedFile.FileName == "")
                {
                    Response.Write("请选择文件");
                    return;
                }
                else
                {
                   

                   string filepath = FileUpload1.PostedFile.FileName;
                   string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
                 
                   string path = Server.MapPath("file/") + filename;
                 //  string locPath = @"F:/游戏";
                   FileUpload(filepath, path);

                   // FileUpload1.PostedFile.SaveAs(path);
                  
                   
                }
            }
            catch (Exception error)
            {
                Response.Write(error.ToString());
            }

我在本地测试,能上传但是不能支持断点,同时文件大小都成0字节了,请各位帮帮我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值