コード例 #1
0
 private static bool DoVerb(FolderItem Item, string Verb)
 {
     foreach (FolderItemVerb FIVerb in Item.Verbs())
     {
         if (FIVerb.Name.ToUpper().Contains(Verb.ToUpper()))
         {
             FIVerb.DoIt();
             return(true);
         }
     }
     return(false);
 }
コード例 #2
0
        /*
         #명령 인자값
         * - 복원(&E)
         * - 잘라내기(&T)
         * - 삭제(&D)
         * - 속성(&R)
         */

        //매개변수로 전달받은 파일 및 폴더를 복원
        private bool DoVerb(FolderItem Item, string Verb)
        {
            foreach (FolderItemVerb FIVerb in Item.Verbs())
            {
                if (FIVerb.Name.ToUpper().Contains(Verb.ToUpper()))
                {
                    FIVerb.DoIt(); //지정된 경로, 즉 삭제되기 전의 경로로 복원하는 작업
                    Load_RecycleBinFile();
                    return(true);
                }
            }
            return(false);
        }
コード例 #3
0
        public static bool RestoreFromRecycle(ICollection <FileSystemInfo> restoreCollection)
        {
            try
            {
                Shell shell = new Shell();             //создаем новый экземпляр интерфейса Shell

                Folder recycler = shell.NameSpace(10); //настраиваемся на корзину :)
                                                       //перебираем все выделенные элементы lvRecycle, поскольку lvRecycle.MultiSelect = true
                foreach (var file in restoreCollection)
                {
                    //ищем элемент lvRecycle в корзине
                    foreach (FolderItem2 fi in recycler.Items())
                    {
                        if (fi.Name == ((FileSystemInfo)file).Name)
                        {
                            //нашли, теперь перебираем коллекцию т. н. "действий", в которых содержатся, в
                            //частности, пункты контекстного меню Проводника (мне так показалось :))
                            foreach (FolderItemVerb FIVerb in fi.Verbs())
                            {
                                string task = FIVerb.Name.ToUpper();
                                if (task.Contains("тановить".ToUpper()) || task.Contains("estore".ToUpper())) //*
                                {
                                    FIVerb.DoIt();                                                            //выполняем действие
                                }
                                break;
                            }
                        }
                    }
                }
                //уничтожаем экземпляр COM-объекта
                Marshal.FinalReleaseComObject(shell);
                return(true);
            }
            catch
            {
                return(false);
            }
        }