/// <summary> /// Cria um arquivo ZIP a partir de um diretório, no diretório pai do mesmo diretório. /// </summary> /// <returns>Arquivo ZIP.</returns> /// <param name="p_zipfilename">Nome do arquivo ZIP a ser criado.</param> /// <param name="p_directory">Diretório a ser compactado.</param> public Spartacus.Utils.File CompressDirectory(string p_zipfilename, Spartacus.Utils.File p_directory) { Spartacus.ThirdParty.ZipStorer v_zipstorer; Spartacus.Utils.File v_zipfiletmp, v_zipfile; Spartacus.Utils.FileArray v_filearray; System.IO.FileInfo v_fileinfo; if (p_directory.v_pathseparator == Spartacus.Utils.PathSeparator.SLASH) v_zipfiletmp = new Spartacus.Utils.File(1, 1, Spartacus.Utils.FileType.FILE, p_directory.v_path + "/" + p_zipfilename); else v_zipfiletmp = new Spartacus.Utils.File(1, 1, Spartacus.Utils.FileType.FILE, p_directory.v_path + "\\" + p_zipfilename); try { v_zipstorer = Spartacus.ThirdParty.ZipStorer.Create(v_zipfiletmp.CompleteFileName(), "Generated with ZipStorer (by Jaime Olivares) embedded in Spartacus (by William Ivanski)"); v_zipstorer.EncodeUTF8 = true; v_filearray = new Spartacus.Utils.FileArray(p_directory.CompleteFileName(), "*", System.IO.SearchOption.AllDirectories); foreach (Spartacus.Utils.File v_file in v_filearray.v_files) v_zipstorer.AddFile(Spartacus.ThirdParty.ZipStorer.Compression.Deflate, v_file.CompleteFileName(), v_file.CompleteFileName().Replace(p_directory.v_path, ""), ""); v_zipstorer.Close(); v_fileinfo = new System.IO.FileInfo(v_zipfiletmp.CompleteFileName()); v_zipfile = new Spartacus.Utils.File(1, 1, Spartacus.Utils.FileType.FILE, v_zipfiletmp.CompleteFileName(), v_fileinfo.LastWriteTime, v_fileinfo.Length); } catch (System.Exception e) { throw new Spartacus.Utils.Exception(e); } return v_zipfile; }