public void ReadWord(byte[] bitarray)
         {
              FileStream fs;
              FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("doc/TestWord.doc"));              System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcesses();
              foreach (System.Diagnostics.Process process in processList)
              {
                    if (process.ProcessName == "WINWORD.EXE")
                    {
                            process.Kill();
                    }
              }
    
              fs = fi.OpenWrite();
              fs.Write(bitarray, 0, bitarray.Length);
              fs.Close();
              fs.Dispose();
           }
现象描述:能够创建word 但是word只有1KB 很显然这个Word是错误的,我又用TXT文件试了一下,发现也是1KB,但是可以打开,但是只有前面一些文字有显示(是不是意味着还是写了一点进去了),这是为什么呢?好几天了,简简单单的几行代码,问题出在哪呀,经过测试,确定与VSS无关,与权限无关(我在这个文件夹里面用File.Delete(path)方法都能删掉文件),与数据库,与byte[]流无关,而且直到fs.Write(bitarray, 0, bitarray.Length);这一步,里面的bitarray和bitarray.Length都是正确的, 按道理到 fs.Close();这一步, 这个Word就应该出来了,可是只有1KB~~~~这是为什么呢?请大家帮帮还有那些问题没考虑到得呀,谢谢!

解决方案 »

  1.   

    System.IO.File.WriteAllBytes(@"",bitarray);
      

  2.   

    byte[] bitarray 的长度正常吗?
      

  3.   

    byte[] bitarray 是正常的,和流没关系,因为同样的代码,从同一张数据表中拿出的byte[] bitarray ,在我自己另外开的一个项目是都是正确的。我刚刚又有一个重大发现,我试着把那个错误的文件读成流回写到数据库中去,我再用我另外开那个正确的项目中将其拿出读成文件,自然文件是错的,但是让我意想不到的是,我再回数据库中去拿其他正确的数据时,同样出现的那一样错误的文件,此时我的这个原本正确的项目就变成了和我这个需要解决的项目一样了,这是怎么回事呀, 现在至少我可以确定,我的代码和数据都没错了,可能环境有问题了,那问题又出在哪呀~~~~狂晕ing~~~ 请大家帮帮忙~~~ 谢谢!