private void InitFolderTree()
 {
     FolderList.Clear();
     foreach (var i in GetDeviceId())
     {
         FolderList.Add(new Folder {
             Name = i, Count = ++_folderTreeCount
         });
     }
     foreach (var i in FolderList)
     {
         try
         {
             foreach (var j in Directory.GetDirectories(i.Name + "\\"))
             {
                 i.Children.Add(new Folder {
                     Name = Path.GetFileName(j), Count = ++_folderTreeCount
                 });
             }
         }
         catch
         {
             // ignored
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Make the library manager state coherent with the underline shell library
        /// </summary>
        /// <param name="shellLibrary">The shell library path</param>
        private void UpdateLibraryState(ShellLibrary shellLibrary)
        {
            try
            {
                //break update loop
                _isIgnoreEvent = true;

                FolderList.Clear();
                foreach (string folder in shellLibrary.GetFolders())
                {
                    FolderList.Add(folder);
                }
                DefaultSaveFolder        = shellLibrary.DefaultSaveFolder;
                IsPinnedToNavigationPane = shellLibrary.IsPinnedToNavigationPane;

                string iconPath = shellLibrary.Icon;
                ShellIcon = string.IsNullOrEmpty(iconPath) ? null : Helper.GetIconBitmap(iconPath);

                string folderType;
                try
                {
                    folderType = FolderTypes.GetFolderType(shellLibrary.FolderTypeId);
                }
                catch
                {
                    folderType = "";
                }
                FolderType = folderType;
            }
            finally
            {
                _isIgnoreEvent = false;
            }
        }
Exemplo n.º 3
0
        private void updateImgFileList()
        {
            if (!string.IsNullOrEmpty(SelectedFilePath))
            {
                IArchive archive = ArchiveFactory.Open(SelectedFilePath);
                var      entries = archive.Entries.Where(e =>
                                                         e.IsDirectory == false && (
                                                             Path.GetExtension(e.Key).Equals(".jpg") ||
                                                             Path.GetExtension(e.Key).Equals(".jpeg") ||
                                                             Path.GetExtension(e.Key).Equals(".png") ||
                                                             Path.GetExtension(e.Key).Equals(".bmp")));


                // Folder List
                FolderList.Clear();
                var analysis = new Dictionary <int, int>();
                foreach (var item in entries.ToList())
                {
                    var parts = item.Key.Split('\\').ToList <string>();
                    if (analysis.Keys.Contains <int>(parts.Count))
                    {
                        analysis[parts.Count]++;
                    }
                    else
                    {
                        analysis.Add(parts.Count, 1);
                    }
                }
                if (analysis.Count > 0)
                {
                    //int folderIdx = analysis.OrderByDescending(val => val.Value).First().Key - 2;
                    int folderIdx = analysis.Aggregate((x, y) => x.Value > y.Value ? x : y).Key - 2;    // last idx for file name. And 0 start.
                    if (folderIdx >= 0)
                    {
                        foreach (var item in entries.ToList())
                        {
                            var parts = item.Key.Split('\\').ToList <string>();
                            if (parts.Count > folderIdx)
                            {
                                if (!FolderList.Contains(parts[folderIdx]))
                                {
                                    FolderList.Add(parts[folderIdx]);
                                }
                            }
                        }
                    }
                }

                // Image File List
                ImgFileList.Clear();
                foreach (var item in entries.ToList())
                {
                    ImgFileList.Add(item);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Create new shell library instance
        /// </summary>
        /// <param name="locationPath">Where to create</param>
        /// <param name="name">the name of the library without the .library-ms</param>
        public void CreateShellLibrary(string locationPath, string name)
        {
            using (ShellLibrary shellLibrary = ShellLibrary.Create(name, locationPath))
            {
                LibraryName = shellLibrary.FullName;
            }

            DefaultSaveFolder = string.Empty;
            FolderList.Clear();
            ShellIcon = null;
            ListenToShellLibraryChange();
        }
 public void Check(object sender, ElapsedEventArgs e)
 {
     for (int i = 0; i < FileList.Count; i++)
     {
         if (!File.Exists(FolderList[i] + "\\" + FileList[i]))
         {
             return;
         }
     }
     Model.ShowFolder = false;
     FolderList.Clear();
     FileList.Clear();
     Timer.Stop();
 }
Exemplo n.º 6
0
        /// <summary>
        /// Delete the library
        /// </summary>
        public void DeleteLibrary()
        {
            ShellLibrary.Delete(LibraryName);

            try
            {
                _isIgnoreEvent = true;

                DefaultSaveFolder = string.Empty;
                LibraryName       = string.Empty;
                FolderList.Clear();
                ShellIcon = null;
                _libraryWatcher.Dispose();
                _libraryWatcher = null;
            }
            finally
            {
                _isIgnoreEvent = false;
            }
        }