如题,第一次上传成功,但上传后的文件我就删除不了了,第二次上传就报错了。每次还要把asanet_wp.exe进程结束才行。  上传的代码如下:                   try
            {
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
                inputFile.PostedFile.SaveAs(filePath);
                inputFile.PostedFile.InputStream.Close();
                inputFile.PostedFile.InputStream.Dispose();
                inputFile.Dispose();
            }
            catch (Exception ee)
            {
                Response.Write(ee.Message);
            }
inputFile是一个input(file)控件,红色的代码是我看的别的文章加上的,但问题还是没有解决,请高手帮忙呀!

解决方案 »

  1.   


    我一供准备了两张图,test1.jpg和test2.jpg。第一次上传的时候加任何一个都会成功,所以应该不是权限控制吧。
    就是说上传没有问题,图片也传上去了,但是传上去以后的文件不可访问了,我用资源管理器也删除不了。
      

  2.   

    建议:
    上传时,先存进一个临时文件夹中,一切处理ok,再从临时文件拷贝至正式的目录。
    再在Global文件中处理临时文件,今天删除昨天或以前的临时文件。
      private void DeleteFile()
            {
                DirectoryInfo dInfo = new DirectoryInfo(path);
                foreach (FileInfo fInfo in dInfo.GetFiles())
                {
                    if (fInfo.CreationTime < DateTime.Today)
                    {
                        fInfo.Delete();
                    }
                }
            }
      

  3.   

    哦,终于找到问题了,我对这个文件有访问了一次,忘了,呵呵;代码如下: 
        System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath)
        ImageWidth = mapImage.Width;
        ImageHeight = mapImage.Height;
     没有释放。改成如下代码。using (System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath))
        {
            ImageWidth = mapImage.Width;
            ImageHeight = mapImage.Height;
            mapImage.Dispose();
        }
      

  4.   

    用FileUpLoaded控件的SaveAs方法保问文件不会存在这个问题,我做过关于文件处理的项目。当然了删除文件是在不同的页面里完成的
    关键的代码为:FileUpload.SaveAs("文件名称");
      

  5.   


    没错,Input(file)控件也没有这样的问题,是因为我用了
    System.Drawing.Image mapImage = System.Drawing.Image.FromFile(filePath)
    没想到C#不会自动释放。所以一定要执行mapImage.Dispose(); 才行。