如果文件存在于文件夹中,如何跳过解压缩文件?

时间:2014-07-11 15:04:21

标签: vb.net

您好我正在使用Shell32对解压缩文件进行一些测试。在这段代码中,有几个文件在" C:\ Temp"我通过创建一个新的文件夹名称Unzip解压缩这些文件,它将存储解压缩的文件。

所以问题是如何检查文件是否已经存在,程序将保持或继续下一个功能。这是代码。

    Dim di As New IO.DirectoryInfo("C:\Temp")
    Dim diar1 As IO.FileInfo() = di.GetFiles()
    Dim dra As IO.FileInfo
    Dim sc As New Shell32.Shell()
    For Each dra In diar1    
            IO.Directory.CreateDirectory("C:\Temp\Unzip\" & dra.Name & "")
            Dim output As Shell32.Folder = sc.NameSpace("C:\Temp\Unzip\" & dra.Name & "")
            Dim input As Shell32.Folder = sc.NameSpace("C:\Temp\" & dra.Name & "")
            output.CopyHere(input.Items, 4)
    Next

提前谢谢:)

1 个答案:

答案 0 :(得分:0)

File.Exists() is bad for this kind of thing

您要做的是尝试以一种如果文件已经存在而失败(抛出异常)的方式打开输出流,并处理异常。不幸的是,您现在正在使用的Shell32流程并不允许这样做。但是,直接使用.Net解压缩文件并不困难。特别是如果你可以使用.Net 4.5,这很简单:内置了新的ZipArchive支持。在.Net的早期版本中,您可能需要查看SharpZipLib。它在C#中,但您可以使用VB.Net中的库。