public static VMZipFile ZipFileInfo(ZipArchive zipArchive) { if (zipArchive == null) { return(null); } if (zipArchive.Entries.Count == 0) { return(null); } VMZipFile vMZipFile = new VMZipFile(); vMZipFile.ExtractedFolderName = null; for (int i = 0; i < zipArchive.Entries.Count; i++) { if (string.IsNullOrWhiteSpace(Path.GetExtension(zipArchive.Entries[i].FullName))) { vMZipFile.ExtractedFolderName = StaticUtilities.Left(zipArchive.Entries[i].FullName, 0, zipArchive.Entries[i].FullName.Length - 1); break; } } return(vMZipFile); }
public List <FileModel> UploadFiles(HttpFileCollectionBase files, string DestinationPath) { List <FileModel> fileModels = new List <FileModel>(); if (files == null) { return(null); } if (files.Count > 0) { string CurrDir = DefaultDirectoryName(); string TheDirectoryPath = Path.Combine(DestinationPath, CurrDir); CreateDirectory(TheDirectoryPath); for (int i = 0; i < files.Count; i++) { HttpPostedFileBase file = files[i]; string TheFilePath = Path.Combine(TheDirectoryPath, Path.GetFileName(file.FileName)); if (Path.GetExtension(file.FileName).Contains(".rar")) { DateTime dtStart = DateTime.Now; FileModel TheFileModelRar = new FileModel() { OriginalFileName = Path.GetFileName(file.FileName), UploadedFileName = Path.GetFileName(file.FileName), DirectoryPath = TheDirectoryPath, FilePath = "", Status = PStatus.Error, StatusText = "Invalid Format" }; DateTime dtEnd = DateTime.Now; TheFileModelRar.UploadTimeSpan = dtEnd.Subtract(dtStart); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { TheFileModelRar.UploadTime = TheFileModelRar.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelRar.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { TheFileModelRar.UploadTime = TheFileModelRar.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelRar.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(TheFileModelRar); continue; } else if (Path.GetExtension(file.FileName).Contains(".xml")) { DateTime dtStart = DateTime.Now; file.SaveAs(TheFilePath); FileModel TheFileModelXml = new FileModel() { OriginalFileName = Path.GetFileName(file.FileName), UploadedFileName = Path.GetFileName(file.FileName), DirectoryPath = TheDirectoryPath, FilePath = TheFilePath, Status = PStatus.None, StatusText = "Uploaded" }; DateTime dtEnd = DateTime.Now; TheFileModelXml.UploadTimeSpan = dtEnd.Subtract(dtStart); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { TheFileModelXml.UploadTime = TheFileModelXml.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelXml.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { TheFileModelXml.UploadTime = TheFileModelXml.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelXml.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(TheFileModelXml); } else if (Path.GetExtension(file.FileName).Contains(".zip")) { DateTime dtStart = DateTime.Now; file.SaveAs(TheFilePath); using (var zipFile = ZipFile.OpenRead(TheFilePath)) { VMZipFile TheVMZipFile = StaticUtilities.ZipFileInfo(zipFile); if (TheVMZipFile == null) { FileModel TheFileModelZip1 = new FileModel() { OriginalFileName = Path.GetFileName(file.FileName), UploadedFileName = Path.GetFileName(file.FileName), DirectoryPath = TheDirectoryPath, FilePath = TheFilePath, Status = PStatus.Error, StatusText = "Invalid Data" }; DateTime dtEnd = DateTime.Now; TheFileModelZip1.UploadTimeSpan = dtEnd.Subtract(dtStart); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { TheFileModelZip1.UploadTime = TheFileModelZip1.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelZip1.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { TheFileModelZip1.UploadTime = TheFileModelZip1.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelZip1.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(TheFileModelZip1); continue; } zipFile.ExtractToDirectory(TheDirectoryPath); string TheExtractedPath = TheDirectoryPath; if (TheVMZipFile.ExtractedFolderName != null) { TheExtractedPath = Path.Combine(TheDirectoryPath, TheVMZipFile.ExtractedFolderName); } DirectoryInfo TheDirectoryInfo = new DirectoryInfo(TheExtractedPath); FileInfo[] TheFileInfo = TheDirectoryInfo.GetFiles("*.xml"); if (TheFileInfo == null) { FileModel TheFileModelFileInfo1 = new FileModel() { OriginalFileName = Path.GetFileName(file.FileName), UploadedFileName = Path.GetFileName(file.FileName), DirectoryPath = TheDirectoryPath, FilePath = TheFilePath, Status = PStatus.Error, StatusText = "Invalid Data" }; DateTime dtEnd = DateTime.Now; TheFileModelFileInfo1.UploadTimeSpan = dtEnd.Subtract(dtStart); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { TheFileModelFileInfo1.UploadTime = TheFileModelFileInfo1.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelFileInfo1.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { TheFileModelFileInfo1.UploadTime = TheFileModelFileInfo1.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelFileInfo1.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(TheFileModelFileInfo1); continue; } if (TheFileInfo.Length == 0) { FileModel TheFileModelFileInfo2 = new FileModel() { OriginalFileName = Path.GetFileName(file.FileName), UploadedFileName = Path.GetFileName(file.FileName), DirectoryPath = TheDirectoryPath, FilePath = TheFilePath, Status = PStatus.Error, StatusText = "Invalid Data" }; DateTime dtEnd = DateTime.Now; TheFileModelFileInfo2.UploadTimeSpan = dtEnd.Subtract(dtStart); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { TheFileModelFileInfo2.UploadTime = TheFileModelFileInfo2.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelFileInfo2.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { TheFileModelFileInfo2.UploadTime = TheFileModelFileInfo2.UploadTimeSpan.Seconds.ToString("00") + ":" + TheFileModelFileInfo2.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(TheFileModelFileInfo2); continue; } DateTime dtEndZip = DateTime.Now; TimeSpan TheZipUploadTime = new TimeSpan(dtEndZip.Subtract(dtStart).Ticks / TheFileInfo.Length); foreach (FileInfo TheFile in TheFileInfo) { DateTime dtStartZip = DateTime.Now; FileModel fileModelZip = new FileModel() { OriginalFileName = TheFile.Name, UploadedFileName = TheFile.Name, DirectoryPath = TheDirectoryPath, FilePath = TheFile.FullName, Status = PStatus.None }; DateTime dtEnd = DateTime.Now; fileModelZip.UploadTimeSpan = TheZipUploadTime + dtEnd.Subtract(dtStartZip); if (StaticUtilities.ProcessTimeFormat == PTime.Ticks) { fileModelZip.UploadTime = fileModelZip.UploadTimeSpan.Seconds.ToString("00") + ":" + fileModelZip.UploadTimeSpan.Ticks.ToString(); } else if (StaticUtilities.ProcessTimeFormat == PTime.Milliseconds) { fileModelZip.UploadTime = fileModelZip.UploadTimeSpan.Seconds.ToString("00") + ":" + fileModelZip.UploadTimeSpan.Milliseconds.ToString("000"); } fileModels.Add(fileModelZip); } } } } } return(fileModels); }