感谢StreamWriter!

昨天从中电投出来,打上车直奔沈阳北站。路上回想整个系统,忽然想起,上一篇博文《Oracle支撑的asp.net2.0应用中自主实现数据依赖缓存》中,提及“其它的能够改变任务相关的数据的地方,也同时修改相应缓存文件的内容”,可是程序中在写入这种缓存监视文件时,并未事先判断其是否存在,这样的话,一旦出现某种意外,导致缓存监视文件丢失,程序岂不是要报错?

 

想到这,立马掏出本本,打开一个以前的winform程序,在上面加一个按钮,按钮点击事件中放入以下代码测试(本本上没装oracle,无法测试web):

 

System.IO.StreamWriter sw = new System.IO.StreamWriter( Server.MapPath( "c:/Cache/10.cache" ) );
sw.WriteLine( DateTime.Now.ToString() );
sw.Close();
sw.Dispose();

 

运行,点击按钮,果然报错~

 

当时再回去修改已经来不及,只能心想着祈祷不会出现文件丢失的问题吧。

 

今早起来,立即打开机器做这个测试:新建一个任务,删除其缓存文件,再做查评等需要更新缓存监视文件的操作……咦,居然没有报错,而且还自动建立了相应的缓存监视文件!

 

欣喜之余,打开MSDN查看了一下StreamWriter,关于构造函数public StreamWriter (string path),找到以下内容:

 

path 参数可以是文件名,包括统一命名约定 (UNC) 共享上的文件。如果此文件已存在,将覆盖它;否则,将创建一个新文件。

 

HOHO~原来如此~这样就不用担心啦~

 

可是在winform程序中做的那个测试又怎么会报错呢?又测了一下,错误信息为:

 

未能找到路径“c:/Cache/10.cache”的一部分。

 

原来是由于没有c:/cache目录的原因,若改成c:/10.cache,同样不会报错,同样会自动创建了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值