我有一个用户想要上载包含多个图像的zip文件和一个包含与图像相关的数据的CSV文件。他们希望能够上载zip文件并让程序通过在CSV文件中查找和处理数据,然后将zip中的图像存储到其适当位置来对它进行解剖。
我正试图弄清楚如何打开zip,以便我可以在其中的每个文件中循环查找所需的文件。有什么办法吗?
答案 0 :(得分:1)
您可以使用Acumatica Framework中的ZipArchive:
// Uploaded file needs to be attached to a DAC record
Guid[] files = PXNoteAttribute.GetFileNotes(DACCache, DACRecord);
UploadFileMaintenance upload = PXGraph.CreateInstance<UploadFileMaintenance>();
foreach (Guid fileID in files)
{
FileInfo fileInfo = upload.GetFile(fileID);
if (fileInfo != null)
{
using (MemoryStream stream = new MemoryStream(fileInfo.BinData))
{
ZipArchive zip = ZipArchive.OpenReadonly(stream);
string tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
Directory.CreateDirectory(tempDirectory);
ZipFolder.Decompress(zip, tempDirectory, true);
foreach (string filePath in Directory.GetFiles(tempDirectory))
{
// Enumerating decompressed files
}
}
}
}