Exemplo n.º 1
0
 private IEnumerable <string> Directories()
 {
     string[] dirs = VirtualDrive.GetDirectories(Path);
     foreach (string dir in dirs)
     {
         if ((VirtualDrive.DirectoryAttributes(dir) & FileAttributes.Hidden) == 0)
         {
             yield return(dir);
         }
     }
 }
Exemplo n.º 2
0
        public static void ClearAttributes(string currentDir)
        {
            if (VirtualDrive.ExistsDirectory(currentDir))
            {
                VirtualDrive.ClearDirectoryAttributes(currentDir);

                foreach (string dir in VirtualDrive.GetDirectories(currentDir))
                {
                    ClearAttributes(dir);
                }
                foreach (string file in VirtualDrive.GetFiles(currentDir, "*.*"))
                {
                    VirtualDrive.ClearFileAttributes(file);
                }
            }
        }
Exemplo n.º 3
0
        public virtual void Process(object obj)
        {
            DirectoryInfo rootDirectory = obj as DirectoryInfo;

            List <string> directories = new List <string>();

            directories.Add(rootDirectory.FullName);

            while (directories.Count > 0)
            {
                if (Abort)
                {
                    return;
                }

                try
                {
                    string currentDirectory = directories[0];
                    directories.RemoveAt(0);

                    if (Processor.SupportedClasses().Contains(typeof(DirectoryInfo)) ||
                        ForceRecurse)
                    {
                        directories.AddRange(VirtualDrive.GetDirectories(currentDirectory));
                    }

                    if (Processor.SupportedClasses().Contains(typeof(DirectoryInfo)))
                    {
                        ProcessDir(currentDirectory);
                    }

                    if (Processor.SupportedClasses().Contains(typeof(FileInfo)))
                    {
                        ProcessFiles(VirtualDrive.GetFiles(currentDirectory, FileMask));
                    }
                }
                catch (System.IO.DirectoryNotFoundException e)
                {
                    Logger.WriteLine(Tokens.Exception, e);
                }
                catch (System.UnauthorizedAccessException e)
                {
                    Logger.WriteLine(Tokens.Exception, e);
                }
            }
        }
Exemplo n.º 4
0
 private void RemoveChildrenIfFolderEmpty(TreeNode node)
 {
     try
     {
         if (node is VolumeItem && !VirtualDrive.DriveIsReady(node.ItemPath) ||
             VirtualDrive.GetDirectories(node.ItemPath).Length == 0)
         {
             WorkerThreadPool.Instance.InvokingThread.BeginInvokeLowPrio(
                 delegate()
             {
                 Root.ClearNode(node);
             });
         }
     }
     catch (Exception)
     {
     }
 }
Exemplo n.º 5
0
        public static IEnumerable <string> SuggestPaths(string fullPath, bool showHiddenDirectories)
        {
            string basePath = BasePath(fullPath);

            List <string> result = new List <string>();

            if (VirtualDrive.ExistsDirectory(basePath))
            {
                try
                {
                    foreach (var dirName in VirtualDrive.GetDirectories(basePath))
                    {
                        bool isHidden = new DirectoryInfo(dirName).Attributes.HasFlag(FileAttributes.Hidden);
                        bool show     = isHidden && showHiddenDirectories || !isHidden;

                        bool matches = Path.Combine(basePath, dirName).StartsWith(
                            fullPath.ToLower(), true, CultureInfo.CurrentUICulture);

                        if (show && matches)
                        {
                            result.Add(dirName);
                        }
                    }
                }
                catch (UnauthorizedAccessException)
                {
                }
            }
            else if (String.IsNullOrEmpty(basePath) ||
                     !basePath.Contains(new String(new char[] { Path.VolumeSeparatorChar })))
            {
                foreach (var dir in DriveInfo.GetDrives())
                {
                    result.Add(dir.Name);
                }
            }

            return(result);
        }
Exemplo n.º 6
0
Arquivo: Lib.cs Projeto: MRoc/puremp3
 private static bool IsDirectoryEmpty(DirectoryInfo dir)
 {
     return(VirtualDrive.GetFiles(dir.FullName, "*.*").Length == 0 &&
            VirtualDrive.GetDirectories(dir.FullName).Length == 0);
 }