关于写文件的一点问题

yumanqing yumanqing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近做一个简单的自动更新功能,就是从服务器下载要更新的文件到本地,其他的都弄好了,就是有一点小问题,见代码:

/// <summary>
/// 自动下载更新文件
/// </summary>
private void downfile()
{
_FileName = Application.StartupPath + "\\AutoDown\\" + _FileName;
WebClient DownFile = new WebClient();
long totalBytes;

//取得文件大小
Addtext("获取文件大小\r\n");
WebRequest request = WebRequest.Create(_Url);

WebResponse response = request.GetResponse();
totalBytes = response.ContentLength;
SetpbarMaxValue((int)totalBytes);
response.Close();

//开始下载数据
Addtext("准备下载数据 " + String.Format("{0:N2}",Convert.ToDouble(totalBytes / 1048576.0)) + " MB....\r\n");
Stream stream = DownFile.OpenRead(_Url);
byte[] arrByte = new byte[1024];
int startPos = 0;
DateTime dt = DateTime.Now;
TimeSpan curT;
double pByte = 0;
Addtext("正在下载数据....\r\n");

FileStream fStream = new FileStream(_FileName, FileMode.Append, FileAccess.Write);

while (true)
{
int readCnt = readCnt = stream.Read(arrByte, 0, 1024);

if (readCnt == 0)
{ break; }

fStream.Write(arrByte, 0, readCnt);
startPos += readCnt;
SetpbarValue(startPos);

//计算速度
curT = DateTime.Now - dt;
pByte = startPos / curT.TotalSeconds / 1024;
SetspeedValue(string.Format("下载速度 {0}KB/秒", (int)pByte));
}
stream.Close();
fStream.Close();
SetpbarValue((int)totalBytes);
Addtext("下载完毕\r\n");

Application.Exit();

}


_Url是下载地址,_FileNname是文件名,
报错的地方:
FileStream fStream = new FileStream(_FileName, FileMode.Append, FileAccess.Write);
如果新下载的文件本地也有的话,就OK,如果是新增的文件,本地的不存在,就报错,该怎么改下呢?本人对文件操作不是很熟悉
谢谢
...全文

相关推荐

C6748烧写的时候遇到的问题

C6748烧写的教程比较多了,我也是参考别人的教程完成的工作。这里我就说说我这边遇到的一些问题。 首先我们确认一下板子和环境:  TI官方C6748板子(LCDK)、CCS5.5环境、XDS100V2国产仿真器 因为板子是官方的板子,所以所有的工具都是使用官方提供的,包括烧写工具OMAP-L138_FlashAndBootUtils_2_40,这个工具可以去官方下载。下面就讲我工作的时候遇到的...

m0_37775441

前端开发组件示例源码_f1b6a91d详解

前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。

鱿鱼助手

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com

2601_97196179

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn

2601_97196179

高校如何通过科技报告服务提升技术转移转化效率?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 7
收藏 已收藏
分享
返回顶部
yumanqing
C# 111,128 成员 642,536 内容