私は私の問題の答えを見つけました(stackoverflowのおかげです)
問題: 同じファイルを繰り返し解凍すると、解凍されたファイルのコピーが一時ディレクトリに作成されます。一時ディレクトリが制限 (99 コピー) に達すると、「ファイルが存在します」というエラーが発生します。
一時ディレクトリの場所:「C:\Documents and Settings(ユーザー アカウント)\Local Settings\Temp」。
(My.Computer.FileSystem.SpecialDirectories.Temp) または (Environment.GetEnvironmentVariable("TEMP")) を使用して、.net でそれらにアクセスできます。
解決策:ファイルを解凍(抽出)する前に、まず一時フォルダーの以前のコピーを削除します。一時ディレクトリをクリアするためのコードは次のとおりです。
Sub CleanUpTemporaryFiles()
Dim m_StrTemporaryDirectory As String = ""
'Get the Temporary folder directory
m_StrTemporaryDirectory = Environment.GetEnvironmentVariable("TEMP")
If Directory.Exists(m_StrTemporaryDirectory & _
"\Temporary Directory 1 for " & _
m_ApplicationName & ".zip\") Then
Dim directory As String = m_StrTemporaryDirectory & _
"\Temporary Directory 1 for " & _
m_ApplicationName & ".zip\" & _
m_ApplicationName
Dim dirInfo As New DirectoryInfo(directory)
'Loop on all the files
For Each f In IO.Directory.GetFiles(directory, "*.*", SearchOption.AllDirectories)
'Change the the file attribute to not read only so that it will not get an error deleting the file
File.SetAttributes(f.ToString, File.GetAttributes(f.ToString) _
Xor FileAttributes.ReadOnly Or FileAttributes.Hidden)
'Delete the file
File.Delete(f)
Next
If System.IO.Directory.Exists(My.Computer.FileSystem.SpecialDirectories.Temp & _
"\Temporary Directory 1 for " & m_ApplicationName & ".zip") Then
System.IO.Directory.Delete(My.Computer.FileSystem.SpecialDirectories.Temp & _
"\Temporary Directory 1 for " & m_ApplicationName & ".zip", True)
End If
End If
End Sub
上手く説明できませんが、質問やアドバイス等ありましたらお気軽にコメントください。