微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理与删除目录相关的错误

如何解决处理与删除目录相关的错误

以下是我使用 Visual Studio 2012 编写的一个非常简单的程序,它清楚地显示错误

Imports System.Drawing.Imaging
Imports System.IO

Public Class Form1
    Private Sub Form1_Load(sender As Object,e As EventArgs) Handles Me.Load
        Using bmp As New Bitmap(800,200)
            Dim gr As Graphics = Graphics.FromImage(bmp)

            For n = 0 To 3
                Dim fileName As String = "D:\Users\Gerry\Desktop\TmpImages\SmileFace" + CStr(n) + ".jpg"
                Using tmpBmp As Bitmap = New Bitmap(Image.FromFile(fileName))
                    gr.DrawImage(tmpBmp,n * 200,0)
                End Using
            Next
            gr.dispose()

            Dim finalName As String = "D:\Users\Gerry\Desktop\Combined.jpg"
            bmp.Save(finalName,ImageFormat.Jpeg)
        End Using

        Directory.Delete("D:\Users\Gerry\Desktop\TmpImages",True)
        Application.Exit()
    End Sub
End Class

在调试和独立模式下都会发生的问题是文件夹 TmpImages 没有被删除。以下是错误文本:

System.IO.IOException: 进程无法访问文件 'SmileFace0.jpg' 因为它正被另一个进程使用。在 System.IO.Directory.DeleteHelper(String fullPath,String userPath,布尔递归,布尔 throwOnTopLevelDirectoryNotFound, WIN32_FIND_DATA& 数据) 在 System.IO.Directory.Delete(String fullPath,Boolean recursive,Boolean checkHost) at Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectoryInternal(字符串 目录,DeleteDirectoryOption onDirectoryNotEmpty,UIOptionInternal showUI,RecycleOption recycle,UICancelOption onUserCancel) at Microsoft.VisualBasic.MyServices.FileSystemProxy.DeleteDirectory(字符串 目录,DeleteDirectoryOption onDirectoryNotEmpty) 在 bmpSave.Form1.Form1_Load(Object sender,EventArgs e) 中 C:\Users\Gerry\Documents\Visual Studio 2012\Projects\Learning and 测试\bmpSave\bmpSave\Form1.vb:line 22 at System.EventHandler.Invoke(Object sender,EventArgs e)

我尝试过的一个实验是在语句 gr.dispose 之后添加语句 Close。不再抛出错误,但不会删除目录。请注意,在代码中,我尝试了 Directory.Delete 和 FileSystem.DeleteDirectory 并且两次都得到了相同的结果。该错误与 TmpImages 文件夹中的文件之一有关,该文件只是为了读取而打开。

请建议我应该怎么做来解决这个问题。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。