zipファイルを解凍したいのですが、zipファイルにフォルダがあるかどうかを確認する必要があります。はいの場合は、その中のフォルダと同じフォルダに展開する必要があります。そうでなければzipfolderの名前をとるべきです。フォルダ内のZipファイルを抽出する
私の問題は、私はいつもパスの一部が見つからないという例外が出ますが、私がzipを開くとそのファイルがそこにあるということです。
私は絶望的です!
private void CreateZipContentFolder(string zipsPath, string destinationPath) {
Zips = Directory.GetFiles(zipsPath, "*.zip", SearchOption.TopDirectoryOnly).ToList();
if (Zips.Count != 0) {
MyLog.WriteToLog("Creating Folder of ZipFiles... From: " + zipsPath + " To: " + destinationPath, MyLog.Messages.Info);
foreach (string zip in Zips) {
FileInfo fileInfo = new FileInfo(zip);
string dirName = destinationPath + "\\" + fileInfo.Name.Substring(0, fileInfo.Name.Length - 4);
using (ZipArchive archive = ZipFile.OpenRead(zip)) {
foreach (ZipArchiveEntry entry in archive.Entries) {
if (entry.FullName.EndsWith("/")) {
try {
ZipFile.ExtractToDirectory(zip, destinationPath);
} catch (IOException e) {
MyLog.WriteToLog(e.Message, MyLog.Messages.Error);
}
break;
} else if (new FileInfo(dirName).Exists == false) {
try {
Directory.CreateDirectory(dirName);
ZipFile.ExtractToDirectory(zip, dirName);
} catch (IOException e) {
MyLog.WriteToLog(e.Message, MyLog.Messages.Error);
}
break;
}
}
}
}
MyLog.WriteToLog("Created Temporary Folders", MyLog.Messages.Info);
} else { MyLog.WriteToLog("No Zips Found in: " + zipsPath, MyLog.Messages.Warning); }
}
更新:\ Documents_UBS_AM \ Projekte \ DataCompare:
System.IO.DirectoryNotFoundExceptionが HRESULT = -2147024893
メッセージ=パスの一部が見つかりませんでした「P未処理の例外でした\ New \ package4 \ AssetPerformance.txt 'をクリックします。
ソース= mscorlib
'FileInfo'を使用して、' DirectoryInfo'を使用する必要があるときにディレクトリを確認しています – Nkosi