2:13 PM
Marianz
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace DatFileBrowser
{
public partial class DatFileViewer : Form
{
UserEnvironment _environment;
List _urlEntries;
List _redrEntries;
public DatFileViewer()
{
InitializeComponent();
InitializeEnvironment();
}
#region Helper Methods
public void InitializeEnvironment()
{
_environment = new UserEnvironment();
_environment.UserFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
_environment.ProfileFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
_environment.CookiesFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies);
_environment.TempInternetFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
_environment.HistoryFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.History);
}
#endregion
void LoadOpenDATFiles(string datFolder)
{
_datProgress.Visible = true;
Cursor.Current = Cursors.WaitCursor;
listViewDat.Items.Clear();
LoadDataFiles(datFolder);
LoadView(listViewDat);
Cursor.Current = Cursors.Default;
_datProgress.Visible = false;
}
void LoadNTUserFiles()
{
_datProgress.Visible = true;
Cursor.Current = Cursors.WaitCursor;
listViewDat.Items.Clear();
LoadDataFiles(_environment.UserFolder);
LoadView(listViewDat);
Cursor.Current = Cursors.Default;
_datProgress.Visible = false;
}
void LoadTempInternetFiles()
{
_datProgress.Visible = true;
Cursor.Current = Cursors.WaitCursor;
listViewDat.Items.Clear();
LoadDataFiles(_environment.TempInternetFolder);
LoadView(listViewDat);
Cursor.Current = Cursors.Default;
_datProgress.Visible = false;
}
void LoadCookies()
{
_datProgress.Visible = true;
Cursor.Current = Cursors.WaitCursor;
listViewDat.Items.Clear();
LoadDataFiles(_environment.CookiesFolder);
LoadView(listViewDat);
Cursor.Current = Cursors.Default;
_datProgress.Visible = false;
}
void LoadHistory()
{
_datProgress.Visible = true;
Cursor.Current = Cursors.WaitCursor;
listViewDat.Items.Clear();
LoadDataFiles(_environment.HistoryFolder);
LoadView(listViewDat);
Cursor.Current = Cursors.Default;
_datProgress.Visible = false;
}
private void LoadDataFiles(string rootFolder)
{
_urlEntries = new List();
_redrEntries = new List();
List datFiles = ByteBlocks.DatFileParser.IndexDatParser.GetListOfIndexFiles(rootFolder);
foreach (var datFile in datFiles)
{
var parseResult = ByteBlocks.DatFileParser.IndexDatParser.Parse(datFile);
if (parseResult.Status == 0)
{
_urlEntries.AddRange(parseResult.Entries.UrlEntries);
_redrEntries.AddRange(parseResult.Entries.RedirectEntries);
}
}
}
private void LoadView(ListView lv)
{
var orderedEntries = _urlEntries.OrderByDescending(urlentry => urlentry.LastAccessTime);
// Load view
foreach (var urlEntry in orderedEntries)
{
var li = new ListViewItem("URL");
li.ImageIndex = 0;
li.SubItems.Add(new ListViewItem.ListViewSubItem(li, urlEntry.Url));
li.SubItems.Add(new ListViewItem.ListViewSubItem(li, urlEntry.LastAccessTime.ToShortDateString()+
" "+urlEntry.LastAccessTime.ToShortTimeString()));
li.Tag = urlEntry;
lv.Items.Add(li);
}
foreach (var redr in _redrEntries)
{
var li = new ListViewItem("REDR");
li.ImageIndex = 1;
li.SubItems.Add(new ListViewItem.ListViewSubItem(li, redr.Url));
lv.Items.Add(li);
}
lblItemsCount.Text = string.Format("Entries: {0}", _urlEntries.Count + _redrEntries.Count);
}
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog opDat = new OpenFileDialog();
opDat.CheckFileExists = true;
opDat.CheckPathExists = true;
opDat.Filter = "DAT Files (*.dat)|*.dat";
if (opDat.ShowDialog() == DialogResult.OK)
{
_environment.DatFile =Path.GetDirectoryName(opDat.FileName);
LoadOpenDATFiles(_environment.DatFile);
}
else
{
return;
}
}
private void btnUser_Click(object sender, EventArgs e)
{
LoadNTUserFiles();
}
private void btnHistory_Click(object sender, EventArgs e)
{
LoadHistory();
}
private void btnIETemp_Click(object sender, EventArgs e)
{
LoadTempInternetFiles();
}
private void btnCookies_Click(object sender, EventArgs e)
{
LoadCookies();
}
private void btnSearch_Click(object sender, EventArgs e)
{
DatFileSearch datSearch = new DatFileSearch();
if (datSearch.ShowDialog() == DialogResult.OK)
{
_environment.DatFile = Path.GetDirectoryName(DatFileSearch.datFile);
LoadOpenDATFiles(_environment.DatFile);
}
}
private void listViewDat_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listViewDat.SelectedItems == null ||
listViewDat.SelectedItems.Count == 0)
{
return;
}
var selItem = listViewDat.SelectedItems[0];
if (selItem.Tag is ByteBlocks.DatFileParser.UrlEntry)
{
var urlView = new URLEntryView(selItem.Tag as ByteBlocks.DatFileParser.UrlEntry);
urlView.ShowDialog();
}
}
private void btnAbout_Click(object sender, EventArgs e)
{
DatFileAbout datAbout = new DatFileAbout();
datAbout.ShowDialog();
}
private void btnClose_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void openBrowseDATFileToolStripMenuItem_Click(object sender, EventArgs e)
{
btnOpen.PerformClick();
}
private void openSearchDATFileToolStripMenuItem_Click(object sender, EventArgs e)
{
btnSearch.PerformClick();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
btnClose.PerformClick();
}
private void nTUserDATToolStripMenuItem_Click(object sender, EventArgs e)
{
btnUser.PerformClick();
}
private void windowsHistoryDATToolStripMenuItem_Click(object sender, EventArgs e)
{
btnHistory.PerformClick();
}
private void iETempDATToolStripMenuItem_Click(object sender, EventArgs e)
{
btnIETemp.PerformClick();
}
private void windowsCookiesDATToolStripMenuItem_Click(object sender, EventArgs e)
{
btnCookies.PerformClick();
}
private void dATFileBrowserToolStripMenuItem_Click(object sender, EventArgs e)
{
btnAbout.PerformClick();
}
}
}
0 comments :
Post a Comment