日期:2014-05-17  浏览次数:21077 次

C#创建文件,正由另一进程使用,因此该进程无法访问此文件。
看看这个时间点,想必各种方法都尝试过了。
可以确定的是,并没有进程访问新创建的这个文件。
但是却一直报错。

系统:windows server 2008 R2
环境:framework 3.5


        private void saveAs(DataRow data)
        {
            int attachid = data["AttachID"].ToInt();
            string fileName = data["FileName"].ToString();

            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "*|*.*";
            sfd.FileName = fileName;
            sfd.FilterIndex = 0;
            //sfd.RestoreDirectory = true;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                if (sfd.OpenFile() != null)
                {
                    string sql = string.Format("select FileContent from FormAttachment where AttachID = {0}", attachid);
                    byte[] content = (byte[])DataBridge.WSS.ExecuteScalar(sql);
                    if (!File.Exists(sfd.FileName))
                    {
                        File.Create(sfd.FileName).Close();
                    }

                    //System.IO.File.WriteAllBytes(sfd.FileName, content); //报错:正由另一进程使用,因此该进程无法访问此文件。
                    MemoryStream ms = new MemoryStream(content);