2017-06-15 51 views
0

アーカイブを抽出します。 コードが実行されるときしかし、問題は、それが以下の例外がスローされます。ファイル名 'filename'はすでに存在します。VB .NET

System.IO.IOException:「ファイル 『ファイル名』は既に存在します。」ここで

そのコードが実行する前に、私が実行されるコードの後...

を何も(なしファイル)を見ていないコード

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 
+0

と= vs.110).aspx)IOExceptionのケースには多くの原因があります。そのうちの1つが適用されているかどうか確認してください。 – Steve

+0

[System.IO.CompressionとZipFileの抽出と上書きの可能な複製](https://stackoverflow.com/questions/15464740/system-io-compression-and-zipfile-extract-and-上書き) – Pikoh

答えて

0

ちょうど推測するが、あなたが解凍しているのと同じディレクトリにZipファイルを置いている可能性があります。 tempディレクトリのサブディレクトリに展開してみてください。例えば

Compression.ZipFile.ExtractToDirectory(String_TempDir & "\rzip.zip", String_TempDir & "\extracted") 

MSDN article on ExtractToDirectoryは、以下の(強調鉱山)言う:

このメソッドは、指定されたディレクトリとすべてのサブディレクトリを作成します。 宛先ディレクトリは存在していない可能性があります。 destinationDirectoryNameまたは sourceArchiveFileNameパラメータのパスの検証に関連する例外は、抽出前にスローされます。 それ以外の場合、抽出中にエラーが発生すると、アーカイブは の部分的に抽出されたのままです。抽出された各ファイルは、ソース のエントリがアーカイブのルートにあるので、と同じ相対パスを持ち、destinationDirectoryNameで指定されたディレクトリを持ちます。

0

また、Zipファイルに重複する名前が含まれていないことを確認しましたか? Linuxで圧縮されていると、Filenamefilenameの両方が内部にあり、このエラーが発生する可能性があります。特に最初にファイルが含まれておらず、解凍に成功したようだからです。

幾分類似質問hereが、[ドキュメント](https://msdn.microsoft.com/en-us/library/system.io.compression.zipfileextensions.extracttodirectory(V IN 7ジップ

関連する問題