Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如果文件夹中存在文件,如何跳过解压缩?_Vb.net - Fatal编程技术网

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

Vb.net 如果文件夹中存在文件,如何跳过解压缩?,vb.net,Vb.net,嗨,我正在用Shell32做一些解压文件的测试。在这段代码中,“C:\Temp”中有几个文件,我通过创建一个新的文件夹名unzip来解压这些文件,unzip将存储解压后的文件 因此,问题是如何检查文件是否已经存在,程序将保持或继续执行下一个函数。这是密码 Dim di As New IO.DirectoryInfo("C:\Temp") Dim diar1 As IO.FileInfo() = di.GetFiles() Dim dra As IO.FileInfo

嗨,我正在用Shell32做一些解压文件的测试。在这段代码中,“C:\Temp”中有几个文件,我通过创建一个新的文件夹名unzip来解压这些文件,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
提前感谢:)


相反,您要做的是尝试以一种如果文件已经存在就会失败(引发异常)的方式打开输出流,并处理异常。不幸的是,您现在使用的Shell32进程不允许这样做。然而,直接使用.Net解压文件并不难。特别是如果您可以使用.NET4.5,这非常简单:有新的内置支持。在.Net的早期版本中,您可能需要查看。它是C#格式的,但是您可以从VB.Net使用该库。

有没有办法在SharpZipLibrary中打开该文件,因为我使用的是visual studio 2013,它无法打开该文件。是的,如果我使用的是.NET4.5,这很容易,但是这个程序要求我使用.NET3.5