【发布时间】:2017-06-15 07:26:24
【问题描述】:
我想提取存档。 但问题是,当代码运行时,它会抛出下面的异常:
System.IO.IOException: '文件'filename'已经存在。'
这里是代码
File.WriteAllBytes(String_TempDir & "\rzip.zip", My.Resources.Resszip) 'I wrote the file from my application resources
Compression.ZipFile.ExtractToDirectory(String_TempDir & "\rzip.zip", String_TempDir) 'This line throws the exception
File.Delete(String_TempDir & "\rzip.zip")
在执行该代码之前我什么也没看到(没有文件)...
代码执行后,抛出异常,但是,我的存档文件已经被解压了。
我使用 Try 语句来区分异常,但它仍然抛出该异常...
Try
Compression.ZipFile.ExtractToDirectory(String_TempDir & "\rzip.zip", String_TempDir)
Catch ex As IOException
'That's it.
End Try
String_TempDir 是我分配给它的字符串:
'global declaration:
Dim folder As String = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
'End of global declaration
Public Function GetTempDir() As String
Do While Directory.Exists(folder) Or File.Exists(folder)
folder = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
Loop
Return folder
End Function
'Form loads
Directory.CreateDirectory(folder)
String_TempDir = folder
【问题讨论】:
-
在docs 中,IOException 情况下列出了许多原因。检查其中一个是否适用