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);
        }
Example #2
0
        /// <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);
            }
        }