http://community.csdn.net/Expert/topic/5669/5669122.xml?temp=.9081537
相关帖子:如何生成一个很大的文件我有些困惑在System.IO.FileStream Fs = File.Create("D:\\AAA.Txt");
Fs.Seek(124000000, SeekOrigin.End);
Fs.WriteByte(0);Fs.Dispose();如果没有最后的Dispose,文件的生成会是一个缓慢增大的过程,但是有了它,就会快速生成;——这难道是异步操作,还是关闭了干脆就直接写出了文件大小拉倒了??
对这个东西不熟悉,不大明白原理;

解决方案 »

  1.   

    Vs2005中说My.Computer.FileSystem效率比Seek高,但是我没有找到和它类似的功能...
      

  2.   

    汗。
    你没关闭文件。内存没有释放。用完文件,执行
    Fs.Flush();
    Fs.Close();Dispose就是执行的这2句话。
      

  3.   

    Dispose的作用我懂,呵呵~~但是为何不关闭,据会缓慢增大?关闭立即增大??
      

  4.   

    Dispose();不就是释放掉对象所有的所有资源并且销毁对象吗? 至于FileStream 那个方法 估计就是给内存分配的资源没有及时释放造成的
      

  5.   

    呵呵,算了,就当它关闭后才进行磁盘刷新罢Vs2005中说My.Computer.FileSystem效率比Seek高,但是我没有找到和它类似的功能...
      

  6.   

    lovingkiss,上面是我的马甲。别给分。
    vb的你也可以拿来用的。引用Microsoft.VisualBasic,然后Microsoft.VisualBasic.FileSystem
      

  7.   

    KissXYL(挚爱凝忆)是我的马甲。回复的时候上面多了几条。
    不释放就不会实际的吧内存写入文件。Flush就是写文件的。
      

  8.   

    实际上,Flush也是不生效的,必须Close或者Dispose才可以,我挨样试验过了——呵呵,没弄过,不大习惯,呵呵~~
      

  9.   

    Flush写文件,Close关闭文件并释放内存。因为你Flush之后,你依然允许继续操作文件,所以不会释放内存,只有Close之后才会释放的。
      

  10.   

    My.Computer.FileSystem有没有效率更高的办法??