我有一個業務場景,我應該允許將加密文件夾下載爲ZIP文件;這意味着文件夾及其子文件夾中的文件已被加密。當我執行文件的服務器端解密時,首先需要在臨時文件夾中重新創建相同的文件夾結構,並解密文件本身並將其保存到臨時文件夾的相應文件夾中。ASP.net MVC - IO.Compression庫不重新創建ZIP文件中的文件夾結構
這部分工作正常;臨時文件夾中的文件夾結構會被重新創建,但是當我嘗試使用System.IO.Compression庫創建臨時文件夾的ZIP文件時會出現問題。
當您打開ZIP文件時,只有該結構的第一個文件夾被創建爲一個文件夾,而其餘文件夾正在被創建爲無擴展名文件。
文件夾結構的解壓縮應用程序看到它
代碼片段:
//Creating temporary folder where the decrypted files will be extracted
var tempFolderPath = _directory.CreateTemporaryFolder(rootFolderPath);
var serverTempFolderPath = HttpContext.Current.Server.MapPath(tempFolderPath);
//Creating the folder structure
RecursiveFolderCreate(folders, tempFolderPath);
//Decrypting the files and recreating them in the corresponding folders
foreach (var file in files)
{
PrepareFile(file, folderPath, tempFolderPath);
}
//Creating the zip file
string zipFileName = string.Concat(folder.Name, ".zip");
string zipFilePath = System.IO.Path.Combine(rootFolderPath, zipFileName);
string serverZipFilePath = HttpContext.Current.Server.MapPath(zipFilePath);
ZipFile.CreateFromDirectory(serverTempFolderPath, serverZipFilePath, CompressionLevel.Optimal, false);
byte[] zipFile = System.IO.File.ReadAllBytes(serverZipFilePath);
謝謝你的回答,但不幸的是,我沒有在catch塊中得到任何東西。 –