0
我的手上有一個有趣的熟食店ma。我創建了一個程序,其中包含1-∞壓縮文件,其中還包含X個單獨文件。無論出於何種原因,不同文件夾中的文件有時會獲得相同的文件名。這是我迄今爲止的代碼...如何處理重複的壓縮文件
這段代碼的作用是,在實例化對象之後,另一個對象調用此函數,稱爲unzip()。什麼failsafe.check_directory()只是確保臨時文件夾都將被解壓縮文件將要進入是空的。第一次嘗試捕獲是我還不知道的任何事情,但第二次嘗試捕獲是捕獲重複的重複文件,所以當它真的發生時...程序不會中斷。所以我所問的問題是如何處理這個異常的最佳方式,而不僅僅是將副本踢到一邊,或者換句話說,在那個文件遲到之前重新命名該文件。
public bool unzip()
{
int bad_file = 0;
failsafe.check_directory();
string dupes = "dupe files\r\n";
try
{
for (int i = 0; i < zippedfolders.Length; i++)
{
try
{
bad_file = i;
ZipFile.ExtractToDirectory(zippedfolders[i], temppath);
}
catch
{
dupes += zippedfolders[bad_file]+"\r\n";
continue;
}
}
File.WriteAllText(@"C:\MDSSCRUBBER\BUGGED_FILE.txt", dupes);
files = Directory.GetFiles(temppath);
return true;
}
catch
{
return false;
}
}
代替使用異常爲重複的,爲什麼不檢查[條目](https://msdn.microsoft.com/en-us/library/system.io.compression.ziparchive.entries.aspx)第一,如果其中一個已經[存在](https://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx),則跳過或[rename](https:// msdn .microsoft.com/en-us/library/hh485719.aspx)。即使只有一個文件失敗,您目前的方法也會跳過存檔。 – Martheen
這是一個好主意,我忍住了我是如何解決這個問題的。 –