public TextView(byte[] data, RPFLib.Common.File entry) { InitializeComponent(); fileEntry = entry; textBox.Text = System.Text.Encoding.UTF8.GetString(data); textBox.Select(0, 0); }
public override List<fileSystemObject> search(RPFLib.Common.Directory dir, string searchText) { List<fileSystemObject> searchList = new List<fileSystemObject>(); searchList.AddRange((from pv in dir._fsObjectsByName where pv.Key.Contains(searchText) select pv.Value)); subsearch(dir, searchList, searchText); return searchList; }
public Saving(FileStream newRPF, RPFLib.RPF6.File file) { InitializeComponent(); newRPFStream = newRPF; rpfFile = file; backgroundWorker1.WorkerSupportsCancellation = true; backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.DoWork += new DoWorkEventHandler(bgWorker_DoWork); backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgressChanged); backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted); }
public void subsearch(RPFLib.Common.Directory dir, List<fileSystemObject> searchList, string searchText) { foreach (fileSystemObject item in dir) { if (item.IsDirectory) { var subdir = item as RPFLib.Common.Directory; searchList.AddRange((from pv in subdir._fsObjectsByName where pv.Key.Contains(searchText) select pv.Value)); subsearch(subdir, searchList, searchText); } } }
public int CountFilesInHier(RPFLib.Common.Directory dir) { foreach (RPFLib.Common.fileSystemObject d in dir) { if (d.IsDirectory) { Task taskA = Task.Factory.StartNew(() => CountFilesInHier(d as RPFLib.Common.Directory)); taskA.Wait(); } else { countOfFiles++; } } return countOfFiles; }
public void BrowseHier(RPFLib.Common.Directory dir, RPFLib.Common.Directory rDir) { foreach (RPFLib.Common.fileSystemObject d in dir) { if (d.IsDirectory) { BrowseHier(d as RPFLib.Common.Directory, rDir); System.IO.Directory.CreateDirectory(extrPath + "\\" + rDir.Name + "\\" + d.FullName.Replace(rDir.FullName + "\\", "")); } else { currentCount++; RPFLib.Common.File file = d as RPFLib.Common.File; byte[] data = file.GetData(false); if (!(System.IO.Directory.Exists(extrPath + "\\" + rDir.Name + "\\" + file.FullName.Replace(rDir.FullName + "\\", "").Replace(file.Name, "")))) System.IO.Directory.CreateDirectory(extrPath + "\\" + rDir.Name + "\\" + file.FullName.Replace(rDir.FullName + "\\", "").Replace(file.Name, "")); System.IO.File.WriteAllBytes(extrPath + "\\" + rDir.Name + "\\" + file.FullName.Replace(rDir.FullName + "\\", ""), data); } } }
private void buildlist(RPFLib.Common.Directory dir) { masterlist.Clear(); currentDir = dir; //Setup return dir if (dir.ParentDirectory != null) { RPFLib.Common.ReturnDir returnDir = new ReturnDir(); returnDir.Tag = dir.ParentDirectory; masterlist.Add(returnDir); } foreach (fileSystemObject item in dir) { if (item.IsDirectory) { var subdir = item as RPFLib.Common.Directory; masterlist.Add(item); } else { var subFile = item as RPFLib.Common.File; masterlist.Add(item); } } setViewObjects(masterlist); }
public override List<fileSystemObject> search(RPFLib.Common.Directory dir, string searchText) { List<fileSystemObject> searchList = new List<fileSystemObject>(); subsearch(dir, searchList, searchText); return searchList; }
private void BuildFSDirectory(DirectoryEntry dirEntry, RPFLib.Common.Directory fsDirectory) { try { fsDirectory.Name = GetName(dirEntry); for (int i = 0; i < dirEntry.ContentEntryCount; i++) { TOCEntry entry = _rpfFile.TOC[dirEntry.ContentEntryIndex + i]; if (entry.IsDirectory) { var subdirEntry = entry as DirectoryEntry; var dir = new RPFLib.Common.Directory(); dir._Contentcount = nCount => subdirEntry.setContentcount(nCount); dir._ContentIndex = ContentIndex => subdirEntry.setContentIndex(ContentIndex); dir._Index = NewContentIndex => subdirEntry.setNewContentIndex(NewContentIndex); dir.Attributes = "Folder"; //dir.entryNum = dirEntry.ContentEntryIndex + i; dir.ParentDirectory = fsDirectory; BuildFSDirectory(entry as DirectoryEntry, dir); fsDirectory.AddObject(dir); } else { var fileEntry = entry as FileEntry; var file = new Common.File(); file._dataLoad = getCustom => LoadData(fileEntry, getCustom); file._dataStore = data => StoreData(fileEntry, data); file._dataCustom = () => fileEntry.CustomData != null; file.d1 = () => fileEntry.getSize(); file._Index = nIndex => fileEntry.setIndex(nIndex); file._delete = () => fileEntry.Delete(); //file.entryNum = dirEntry.ContentEntryIndex + i; file.CompressedSize = fileEntry.SizeInArchive; file.IsCompressed = fileEntry.IsCompressed; file.Name = GetName(fileEntry); //file.Size = fileEntry.Size; file.IsResource = fileEntry.IsResourceFile; file.ParentDirectory = fsDirectory; StringBuilder attributes = new StringBuilder(); if (file.IsResource) { attributes.Append(string.Format("Resource [Version {0}", fileEntry.ResourceType)); if (file.IsCompressed) { attributes.Append("Compressed"); } attributes.Append("]"); } else if (file.IsCompressed) { attributes.Append("Compressed"); } else attributes.Append("None"); fsDirectory.AddObject(file); } } } catch (System.Exception ex) { MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace); } }
private int FolderCount(RPFLib.Common.Directory directory) { int ctr = 0; foreach (fileSystemObject x in directory) { if (x.IsDirectory) { ctr++; } } return ctr; }
private void ExtractToPath(RPFLib.Common.Directory dir, string path, DoWorkEventArgs e) { foreach (fileSystemObject item in dir) { if ((backgroundWorker1.CancellationPending == true)) { e.Cancel = true; break; } if (item.IsReturnDirectory) continue; else if (item.IsDirectory) { try { System.IO.Directory.CreateDirectory(path + item.Name); ExtractToPath(item as RPFLib.Common.Directory, Path.Combine(path, item.Name) + "\\", e); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { try { int test = Convert.ToInt32(((double)fileprogress / filecount) * 100.0); backgroundWorker1.ReportProgress(test); var file = item as RPFLib.Common.File; this.Invoke(new MethodInvoker(delegate { label_filename.Text = "Extracting: " + file.Name; })); byte[] data = file.GetData(false); System.IO.File.WriteAllBytes(Path.Combine(path, file.Name), data); fileprogress++; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
public abstract List<fileSystemObject> search(RPFLib.Common.Directory dir, string searchText);
private bool ReIndex(RPFLib.Common.Directory dir) { try { dir.Reorder(); foreach (var fsobject in dir) { entryIndex++; if (fsobject is RPFLib.Common.File) { var file = fsobject as RPFLib.Common.File; file.SetIndex(entryIndex); } else if (fsobject is RPFLib.Common.Directory) { var directory = fsobject as RPFLib.Common.Directory; directory.SetNewContentIndex(entryIndex); } } if (dir._Contentcount != null) dir.SetContentCount(); foreach (var fsobject in dir) { if (fsobject is RPFLib.Common.Directory) { RPFLib.Common.Directory dirEntry = fsobject as RPFLib.Common.Directory; dirEntry.SetContentIndex(entryIndex + 1); if (!ReIndex(dirEntry)) return false; } } return true; } catch (Exception ex) { //throw new Exception(ex.Message, ex); return false; } }
private void Add(RPFLib.Common.Directory fsDirectory, byte[] data) { FileEntry newFileEntry = new FileEntry(_rpfFile.TOC); _rpfFile.TOC.Add(newFileEntry as TOCEntry); var file = new Common.File(); file._dataLoad = getCustom => LoadData(newFileEntry, getCustom); file._dataStore = setdata => StoreData(newFileEntry, setdata); file._dataCustom = () => newFileEntry.CustomData != null; file.d1 = () => newFileEntry.getSize(); file._Index = nIndex => newFileEntry.setIndex(nIndex); file._delete = () => newFileEntry.Delete(); file.CompressedSize = newFileEntry.SizeInArchive; file.IsCompressed = newFileEntry.IsCompressed; file.Name = GetName(newFileEntry); file.IsResource = newFileEntry.IsResourceFile; file.ParentDirectory = fsDirectory; fsDirectory.AddObject(file); newFileEntry.SetCustomData(data); }
private void addBreadCrumb(RPFLib.Common.Directory directory) { try { BarStaticItem bartextItem = new BarStaticItem(); bartextItem.Border = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; bartextItem.Caption = ">"; bartextItem.Alignment = BarItemLinkAlignment.Left; mainStatusbar.AddItem(bartextItem); BarButtonItem barItem = new BarButtonItem(); barItem.Id = mainStatusbar.ItemLinks.Count + 1; barItem.Tag = directory; barItem.Caption = directory.Name; barItem.ItemClick += new ItemClickEventHandler(barButtonItem_ItemClick); barItem.Alignment = BarItemLinkAlignment.Left; mainStatusbar.AddItem(barItem); } catch { mainStatusbar.ItemLinks.Clear(); } }
private void buildlist(RPFLib.Common.Directory dir) { masterlist.Clear(); currentDir = dir; //Setup return dir foreach (fileSystemObject item in dir) { if (item.IsDirectory) { var subdir = item as RPFLib.Common.Directory; masterlist.Add(item); } else { var subFile = item as RPFLib.Common.File; masterlist.Add(item); } } setViewObjects(masterlist); pathLabel.Text = currentDir.FullName; }
private void startBreadCrumb(RPFLib.Common.Directory directory) { try { BarButtonItem barItem = new BarButtonItem(); barItem.PaintStyle = BarItemPaintStyle.CaptionGlyph; barItem.Glyph = RPFTool.Properties.Resources.Home; barItem.Id = mainStatusbar.ItemLinks.Count + 1; barItem.Tag = directory; barItem.Caption = "Root"; this.barManager.Items.Add(barItem); barItem.ItemClick += new ItemClickEventHandler(barButtonItem_ItemClick); mainStatusbar.AddItem(barItem); } catch { mainStatusbar.ItemLinks.Clear(); } }
private int dirCount(RPFLib.Common.Directory dir, int filecount) { foreach (fileSystemObject item in dir) { if (item.IsReturnDirectory) continue; else if (item.IsDirectory) { filecount = dirCount(item as RPFLib.Common.Directory, filecount); } else { filecount++; } } return filecount; }