,我發現我的問題的答案(感謝計算器)
問題:當我反覆解壓縮同一個文件,它會創建已提取的文件上的臨時目錄的副本。 如果臨時目錄已達到其限制(99個副本),則會導致錯誤「文件存在」。
臨時目錄位置:「C:\ Documents and Settings(您的用戶帳戶)\ Local Settings \ Temp」。
您可以使用(My.Computer.FileSystem.SpecialDirectories.Temp)或(Environment.GetEnvironmentVariable(「TEMP」))在.net中訪問它們。
解決方案: 之前unziping(提取)的文件,我第一次刪除臨時文件夾以前的副本.. 這裏是我的清除臨時目錄編號:
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
我不是擅長解釋事物,但如果您有任何問題或建議,請隨時發表評論。
我將它改爲16,但它仍然提示錯誤「The file exists」。 – 2013-03-19 07:14:31
我建議編號16嘗試覆蓋已存在的文件(具有相同的名稱)。參考信息可以在下面的鏈接中找到。我猜它只是一個讓你的文件操作標誌正確的情況? http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866.aspx – Zeddy 2013-03-19 07:27:23
感謝您的鏈接。如果我使用16它顯示對話框「確認文件夾替換」,但是當我點擊「是所有」然後它仍然會提示錯誤「該文件存在」,什麼也沒有發生。無論如何,謝謝汗,我需要仔細檢查我的代碼。 – 2013-03-19 08:05:04