读书人

二进制文件读取进度,该如何处理

发布时间: 2012-03-20 14:01:11 作者: rapoo

二进制文件读取进度

C# code
string fileName=fileNamePath.Substring(fileNamePath.LastIndexOf("\\")+1);            string NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString()+fileNamePath.Substring(fileNamePath.LastIndexOf("."));            string fileNameExt = fileNamePath.Substring(fileNamePath.LastIndexOf(".") + 1);            if(uriString.EndsWith("/")==false)                uriString +="/";            uriString = uriString + NewFileName;            WebClient myWebCleint = new WebClient();            myWebCleint.Credentials = CredentialCache.DefaultCredentials;//获取系统凭据            //要上传的文件            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);            BinaryReader r = new BinaryReader(fs);                        try            {                byte[] postArray =r.ReadBytes((int)fs.Length);                                Stream postStream = myWebCleint.OpenWrite(uriString, "PUT");//写文件                progressBar1.Minimum = 0;                progressBar1.Maximum = postArray.Length;                                if (postStream.CanWrite)                {                                        progressBar1.Value = r.Read(postArray, 0, postArray.Length);                    [color=#FF0000]postStream.Write(postArray, 0, postArray.Length);[/color]                    MessageBox.Show("文件上传成功!");                }                else                {                    MessageBox.Show("文件目前不可写");                }                postStream.Close();            }            catch            {                MessageBox.Show("文件上传失败,请重试");            }

以上是我写的利用二进制读取和写入文件,在文中红色字体那块,怎么获得文件已经读取多少了

[解决办法]
stream.Position
[解决办法]
progressBar1.Value = r.Read(postArray, 0, postArray.Length);
你是知道read了多少的,假如就是postArray.Length,那就直接在进度条上增加就是了
progressBar1.Value += postArray.Length

读书人网 >C#

热点推荐