private static List <FileInformation> retrieveData(List <string> files, List <FileInformation> items) { foreach (string file in files) { if (IsAvailable(file, false)) { ////////////////////////////////////////// if (Regex.IsMatch(file.ToLower(), @".jpg|.png|.gif$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Image, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".mp3$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Music, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".rar$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Archive, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".zip$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Style, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".exe$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Layers, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".mp4|.avi$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.Video, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else if (Regex.IsMatch(file.ToLower(), @".txt|.ppt$")) { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.FileDocumentOutline, dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } else { items.Add(new FileInformation() { Name = Path.GetFileNameWithoutExtension(file), FullPath = file, Extension = Path.GetExtension(file), //ImagePath = new BitmapImage(new Uri("Images/File.png", UriKind.Relative)), kind_file = MaterialDesignThemes.Wpf.PackIconKind.FiberManualRecord, //SignalCellularNoSim dateTime = Directory.GetLastAccessTime(file).ToString("dd MMMM yyyy hh:mm:ss tt"), size = FormatBytes(new System.IO.FileInfo(file).Length), IsFolder = false }); } //////////////////////////////////////// } } return(items); }
/// <summary> /// Updates the listview with the contents of a directory at the given path. /// </summary> /// <param name="path">Path to directory</param> private void UpdateFileFolerListView(string path) { ClearColor_timer.Stop(); DeleteFiles_timer.Stop(); if (!path.EndsWith("\\")) { path += "\\"; } path_txt.Text = path; FileAttributes atrib; string[] buff; ListViewItem lvi; filelistView.Items.Clear(); //Files try { foreach (string item in Directory.EnumerateFiles(path)) { buff = item.Split('\\'); lvi = new ListViewItem(buff[buff.Length - 1]); try { lvi.SubItems.Add(File.GetLastAccessTime(item).ToString()); atrib = File.GetAttributes(item); lvi.SubItems.Add(atrib.HasFlag(FileAttributes.ReadOnly).ToString()); lvi.SubItems.Add(atrib.HasFlag(FileAttributes.Temporary).ToString()); lvi.SubItems.Add(atrib.HasFlag(FileAttributes.Hidden).ToString()); lvi.SubItems.Add(((new FileInfo(item)).Length / 1000.0).ToString() + " KB"); lvi.BackColor = Color.White; } catch (Exception) { lvi.Text = "!#Error"; } filelistView.Items.Add(lvi); filelistView.Items[filelistView.Items.Count - 1].Group = filelistView.Groups[1]; } DirectoryInfo dirinfo; //Folders foreach (string item in Directory.EnumerateDirectories(path)) { buff = item.Split('\\'); lvi = new ListViewItem(buff[buff.Length - 1]); try { lvi.SubItems.Add(Directory.GetLastAccessTime(item).ToString()); dirinfo = new DirectoryInfo(item); lvi.SubItems.Add(dirinfo.Attributes.HasFlag(FileAttributes.ReadOnly).ToString()); lvi.SubItems.Add(dirinfo.Attributes.HasFlag(FileAttributes.Temporary).ToString()); lvi.SubItems.Add(dirinfo.Attributes.HasFlag(FileAttributes.Hidden).ToString()); lvi.BackColor = Color.White; } catch (Exception) { lvi.Text = "!#Error"; } filelistView.Items.Add(lvi); filelistView.Items[filelistView.Items.Count - 1].Group = filelistView.Groups[0]; } // Setup the file system watcher fswatcher.Dispose(); fswatcher = new FileSystemWatcher(path) { NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.DirectoryName | NotifyFilters.Attributes | NotifyFilters.Size, Filter = "*.*", EnableRaisingEvents = true }; fswatcher.Created += Fswatcher_DoUpdate; fswatcher.Deleted += Fswatcher_DoUpdate; fswatcher.Renamed += Fswatcher_DoUpdate; fswatcher.Changed += Fswatcher_DoUpdate; } catch (Exception) { fswatcher.Dispose(); MessageBox.Show("Could not complete the operation.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }