public FilenameDatabaseEntry(uint firstHash, string filename, uint fileSize, ArchiveTypes type = ArchiveTypes.Any) { FirstHash = firstHash; FileSize = fileSize; Filename = filename; ArchiveType = type; }
private void listView_MouseDoubleClick(object sender, MouseButtonEventArgs e) { var item = (FileItem)((ListView)sender).SelectedItem; if (ArchiveMode) { if (!item.IsDir) { var i = (IArchiveEntry)item.Entry; var path = _temporaryDirectory + DateTime.Now.ToFileTime(); Directory.CreateDirectory(path); i.WriteToDirectory(path, new ExtractionOptions { ExtractFullPath = true }); Process.Start(path + "\\" + i.Key); } else { var i = (IArchiveEntry)item.Entry; var archive = i.Archive; var path = _temporaryDirectory + DateTime.Now.ToFileTime(); Directory.CreateDirectory(path); WriteToDirectory(archive, path); ArchiveMode = false; Process.Start(path); } } else { var path = item.Path; _type = IsArchive(path); OpenArchive(path); } }
public Archive(string archiveFileName) { this.InputStream = System.IO.File.OpenRead(archiveFileName); switch(System.IO.Path.GetExtension(archiveFileName).ToUpperInvariant()) { case ".BZ2": case ".BZIP2": this.ArchiveType = ArchiveTypes.BZip2; break; case ".7Z": this.ArchiveType = ArchiveTypes.SevenZip; break; case ".ZIP": this.ArchiveType = ArchiveTypes.Zip; break; } }
public Archive(string archiveFileName) { this.InputStream = System.IO.File.OpenRead(archiveFileName); switch (System.IO.Path.GetExtension(archiveFileName).ToUpperInvariant()) { case ".BZ2": case ".BZIP2": this.ArchiveType = ArchiveTypes.BZip2; break; case ".7Z": this.ArchiveType = ArchiveTypes.SevenZip; break; case ".ZIP": this.ArchiveType = ArchiveTypes.Zip; break; } }
private string FormatType(ArchiveTypes type) { switch (type) { case ArchiveTypes.BA2_DX10: return("BA2 Texture"); case ArchiveTypes.BA2_GNMF: return("BA2 Texture (GNF)"); case ArchiveTypes.BA2_GNRL: return("BA2 General"); case ArchiveTypes.BSA: return("BSA"); case ArchiveTypes.BSA_MW: return("BSA Morrowind"); case ArchiveTypes.BSA_SE: return("BSA Special Edition"); case ArchiveTypes.DAT_F2: return("DAT Fallout 2"); default: return(string.Empty); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { if (!Directory.Exists(_temporaryDirectory)) { Directory.CreateDirectory(_temporaryDirectory); } //Clear the temporary directory foreach (var file in Directory.GetFiles(_temporaryDirectory)) { File.Delete(file); } //Add the treeview items for every drive foreach (var s in Directory.GetLogicalDrives()) { var item = new TreeViewItem { Header = GetStackpanel(s), Tag = s, FontWeight = FontWeights.Normal }; item.Items.Add(DummyNode); item.Expanded += folder_Expanded; FoldersItem.Items.Add(item); } //Adds a treeview item for the home folder: var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var item2 = new TreeViewItem { Header = GetStackpanel(home), Tag = home, FontWeight = FontWeights.Normal }; item2.Items.Add(DummyNode); item2.Expanded += folder_Expanded; item2.IsSelected = true; FoldersItem.Items.Add(item2); //Checks if Zippy has command line args, and if so, it uses them: var args = Environment.GetCommandLineArgs(); if (args.Length > 1) { var path = args[1]; if (File.Exists(path)) { _type = IsArchive(path); if (_type == ArchiveTypes.None) { var parent = new FileInfo(path).Directory?.FullName; SelectFolder(parent); } else { OpenArchive(path); } } else if (Directory.Exists(path)) { var info = new DirectoryInfo(path); Zip(ArchiveTypes.Zip, null, new List <FileItem> { new FileItem(path) { IsDir = true, Path = path, Name = info.Name } }, true); } else { switch (path) { case "-e": case "-h": path = args[2]; var info = new FileInfo(path); if (IsArchive(path) != ArchiveTypes.None) { if (args[1] == "-e") { var parent = new FileInfo(path).Directory?.FullName; var dialog = new CommonOpenFileDialog { IsFolderPicker = true, InitialDirectory = parent }; var result = dialog.ShowDialog(); if (result == CommonFileDialogResult.Ok) { if (Directory.Exists(dialog.FileName)) { WriteToDirectory(ArchiveFactory.Open(path), dialog.FileName); } } } else { var toDir = info.Directory?.FullName; WriteToDirectory(ArchiveFactory.Open(path), toDir); if (toDir != null) { Process.Start(toDir); } } } break; case "-a": var saveAs = new CommonSaveFileDialog(); saveAs.Filters.Add(new CommonFileDialogFilter("Zip Archive", ".zip")); saveAs.DefaultExtension = ".zip"; var files = args.Skip(2).ToArray(); saveAs.InitialDirectory = new FileInfo(files[0]).Directory?.FullName; if (saveAs.ShowDialog() == CommonFileDialogResult.Ok) { var archive = ZipArchive.Create(); var tmp = _temporaryDirectory + "\\" + DateTime.Now.Ticks; Directory.CreateDirectory(tmp); foreach (var file in files) { if (File.Exists(file)) { File.Copy(file, Path.Combine(tmp, new FileInfo(file).Name)); } else if (Directory.Exists(file)) { DirectoryCopy(file, Path.Combine(tmp, new DirectoryInfo(file).Name)); } } archive.AddAllFromDirectory(tmp); if (File.Exists(saveAs.FileName)) { File.Delete(saveAs.FileName); } SaveTo(archive, saveAs.FileName, new WriterOptions(CompressionType.LZMA)); try { Directory.Delete(tmp, true); } catch { // TODO: error handling } } break; default: break; } } } }
private void Zip(ArchiveTypes type, WriterOptions options1, IList items, bool close = false) { if (items.Count <= 0) { return; } switch (type) { case ArchiveTypes.Zip: { if (close) { IsEnabled = false; } var ar = ZipArchive.Create(); var p = ""; foreach (var x in items) { var item = (FileItem)x; if (Directory.Exists(item.Path)) { ar.AddAllFromDirectory(item.Path); } else { ar.AddEntry(item.Name, File.Open(item.Path, FileMode.Open, FileAccess.Read)); } p = item.Path; } var fpath = new FileInfo(p).Directory + "\\" + ((FileItem)items[0]).Name.Split('.')[0]; if (File.Exists(fpath + ".zip")) { fpath += "_"; } if (options1 == null) { options1 = new WriterOptions(CompressionType.LZMA); } SaveTo(ar, fpath + ".zip", options1); } break; case ArchiveTypes.Deflate: { var ar = ZipArchive.Create(); var p = ""; foreach (var x in items) { var item = (FileItem)x; if (Directory.Exists(item.Path)) { ar.AddAllFromDirectory(item.Path); } else { ar.AddEntry(item.Name, File.OpenRead(item.Path)); } p = item.Path; } Cursor = Cursors.Wait; loading.IsIndeterminate = true; var thread = new Thread(delegate() { var v = new FileInfo(p).Directory + "\\" + ((FileItem)items[0]).Name.Split('.')[0] + ".zip"; using (var _open = File.Open(v, FileMode.OpenOrCreate)) { ar.SaveTo(_open, new WriterOptions(CompressionType.Deflate)); _open.Close(); } Dispatcher.Invoke(delegate { Cursor = Cursors.Arrow; loading.IsIndeterminate = false; }); }); thread.Start(); } break; case ArchiveTypes.None: break; case ArchiveTypes.RAR: break; case ArchiveTypes.SevenZip: break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } Refresh(); }
public void ZipSelected(ArchiveTypes type, WriterOptions options1 = null) { var items = FileList.SelectedItems; Zip(type, options1, items); }
public Archive(System.IO.Stream inputStream, ArchiveTypes archiveType) { this.InputStream = inputStream; this.ArchiveType = archiveType; }
private void btnVideo_Click(object sender, EventArgs e) { errProv.Dispose(); try { if (txtFileSamp.Text == "") { throw new Exception("No file chosen."); } else if (!File.Exists(txtFileSamp.Text)) { throw new Exception("That file does not exist, and thus can't be ran."); } string ext = Path.GetExtension(txtFileSamp.Text); if (VideoTypes.Contains(ext.ToLower())) { Video videoFile = new Video(txtFileSamp.Text); videoFile.ViewFile(); } else if (GraphicTypes.Contains(ext.ToLower())) { Graphic graphicFile = new Graphic(txtFileSamp.Text); graphicFile.ViewFile(); } else if (AudioTypes.Contains(ext.ToLower())) { Audio audioFile = new Audio(txtFileSamp.Text); audioFile.ViewFile(); } else if (ArchiveTypes.Contains(ext.ToLower())) { Archive archiveFile = new Archive(txtFileSamp.Text); archiveFile.ViewFile(); } else if (DocumentTypes.Contains(ext.ToLower())) { Document docFile = new Document(txtFileSamp.Text); docFile.ViewFile(); } else { throw new Exception("File type not found: the chosen file type is not supported."); //System.IO.FileInfo newFile = new System.IO.FileInfo(txtFileSamp.Text); //System.IO.FileAttributes b = newFile.Attributes; } } catch (Exception ex) { errProv.SetError(btnDisplay, ex.Message); } }
public Archive(System.IO.Stream inputStream, ArchiveTypes archiveType) { this.InputStream = inputStream; this.ArchiveType = archiveType; }