【发布时间】:2018-07-10 23:45:10
【问题描述】:
我有一个用户想要上传一个包含多个图像的 zip 文件和一个包含与图像相关的数据的 CSV 文件。他们希望能够上传 zip 文件,并让程序通过查找和处理 CSV 文件中的数据,然后将 zip 中的图像存储到适当的位置来对其进行剖析。
我正在尝试弄清楚如何打开 zip,以便循环浏览其中的每个文件以找到我需要的内容。有没有办法做到这一点?
【问题讨论】:
标签: acumatica
我有一个用户想要上传一个包含多个图像的 zip 文件和一个包含与图像相关的数据的 CSV 文件。他们希望能够上传 zip 文件,并让程序通过查找和处理 CSV 文件中的数据,然后将 zip 中的图像存储到适当的位置来对其进行剖析。
我正在尝试弄清楚如何打开 zip,以便循环浏览其中的每个文件以找到我需要的内容。有没有办法做到这一点?
【问题讨论】:
标签: acumatica
您可以使用 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
}
}
}
}
【讨论】: