zoukankan      html  css  js  c++  java
  • 唾手可得的宝藏:Mono源码

    “源码是最好的文档”,有了源码,任何软件系统在开发人员面前就毫无“神秘”可言了...

    今天需要做一个上传文件的Web页面,在调用HttpPostedFile.SaveAs(String filename)方法将文件写到服务器磁盘上时,想到如果此文件已经存在于磁盘上,这个方法会如何处理呢?直接覆盖?抛出异常?

    翻一下.NET Framework文档,可惜里面没有对这个情况进行说明。于是进入Mono源码目录,定位到HttpPostedFile.cs文件,用记事本打开,找到SaveAs(String filename)方法,第一句就是:

    FileStream File = new FileStream(filename, FileMode.Create);

    OK,确切答案就是如果已经存在同名文件会直接覆写。

    我猜一定有人会想,“万一Mono的实现和.Net Framework不同怎么办?”其实我过后就这么想了,于是用Reflector打开了System.Web.dll,定位这个方法,呵呵,.Net Framework的实现也是“FileMode.Create”。不过.Net Framework使用了一个try...catch来保证关闭这个FileStream,而Mono的实现里面则没有,嗯,这是不是意味着Mono的稳定性仍有不少改进之处呢?

  • 相关阅读:
    8月10日
    8月9日
    8月8日
    8月7日
    8月6日
    8月5日
    《大道至简》读后感
    8月4日
    8月3日
    8月2日
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436788.html
Copyright © 2011-2022 走看看