using System; using System.Collections.Generic; using System.Linq; using System.Text; using PInvoke; using UAF; namespace AssetBrowser { class FileLibrary { public string WorkingFolder { get; set; } private List m_files; public List Files { get { return m_files; } } public FileLibrary() { Reset(); } private void Reset() { WorkingFolder = ""; m_files = new List(); } public void LoadFromWorkingFolder() { WorkingFolder = "C:\\P4_Data_UAF\\W1W\\data"; //WorkingFolder = "C:\\GameToolTemp_WiiU\\5 - Cooking"; DateTime startTime = DateTime.Now; FileEnumerator fileEnumerator; if (UAF.WindowsUtils.CurrentUserIsAdmin()) { fileEnumerator = new NtfsMftEnumerator(); } else { System.Windows.MessageBox.Show("You're not running this program as administrator. It will be really slow!", "Warning!"); fileEnumerator = new BasicFileEnumerator(); } foreach (string filename in fileEnumerator.GetAllFiles(WorkingFolder)) { DataFile dataFile = new DataFile(); dataFile.FilePath = filename; m_files.Add(dataFile); } Console.Out.WriteLine("Build file list time: " + (DateTime.Now - startTime)); Console.Out.WriteLine("Number of files : " + m_files.Count); DateTime sortTime = DateTime.Now; m_files.Sort( delegate(DataFile file1, DataFile file2) { return Comparer.Default.Compare(file1.FilePath, file2.FilePath); }); Console.Out.WriteLine("Sort list time: " + (DateTime.Now - sortTime)); } } }