Як я можу запобігти ненавмисному видаленню папки?


41

У мене на робочому столі дуже важлива папка. Я час від часу прибираю робочий стіл, і я дуже стурбований тим, що я можу ненароком видалити згадану папку. Чи є спосіб запобігти такій катастрофі, не обмежуючи мої часті операції читання-запису на вмісті папки? Примітка. Я не проти видаляти вміст всередині папки по черзі, але сама папка має значення для мене. Якщо його видалити, я втрачаю багато зусиль.


69
Робочий стіл - найгірше місце для зберігання важливих даних, зберігання їх десь в іншому місці та створення ярлика до нього на робочому столі.
Моав

2
Його звичайна практика, ярлик просто веде до папки, все спрацює.
Моав

3
@JasonStack, мабуть, але не обов'язково. Якщо ви перемістите папку, а у вас є інша програма чи документ, який передбачає, що папка знаходиться на вашому робочому столі, вона може щось зламати. Це може статися, якщо у вас є, наприклад, файли, які посилаються на інші файли. Якщо це не стосується вмісту, у вас, ймовірно, не виникне жодних проблем.
барбекю

8
Не робіть цього. <hr /> Зробіть резервні копії. Завжди робіть резервні копії . На зовнішніх носіях. Завжди робіть резервні копії на зовнішніх носіях. Також слід ознайомитись з функцією «Історія файлів / попередні версії Windows». Це досить зручно.
forloop

1
"Якщо я зараз перенесу цю папку кудись і створять ярлик з тим самим іменем на робочому столі, чи все, що залежно від папки, працюватиме нормально?" @JasonStack Я відповів на це у своєму оновленому відповіді нижче. Я хотів би зазначити, що розв'язки були введені з явної причини, щоб мати можливість переміщати речі на інший фізичний обсяг, не впливаючи ні на що.
JDługosz

Відповіді:


112

Не намагайтеся уникати неминучого. Використовуйте резервні копії та контроль версій.

Ви можете відмовити собі у дозволі на видалення . Видалення файлів і папок у цьому каталозі - це окремий дозвіл, який ви також можете відключити за потреби.


26
Гарний крик про резервні копії + поради щодо контролю версій.
bertieb

6
@bertieb це важливо. OP не доведеться випадково видаляти папку, щоб втратити свою роботу, накопичувач може завмерти завтра.
CodeCaster

11
Домовились. Запуск без резервного копіювання - це лише втрата даних у якийсь момент майбутнього - коли, ні, якщо. Тепер, якщо ви вибачте мене, снури, щоб подвійно перевірити резервні копії
bertieb

7
Як ІТ-хлопець, будь ласка, використовуйте як резервне копіювання, так і контроль версій для всіх важливих файлів, особливо що-небудь для клієнтів або вашого бізнесу. Будь ласка, будь ласка, будь ласка.
corsiKa

8
Що ви запитуєте, які шанси на це трапляються? НАРОДНО БУДУТЬ ДОБРО, я випадково видалив папку, наповнену важливими матеріалами наприкінці минулого року, яку я не зміг повернути. Основний виклик пробудження, тепер я палко резервував свою роботу в GitHub, відображений у BitBucket, а також дзеркально відображався на портативному жорсткому диску. ВІДБУВАЙТЕ З СЕРВІВОРУ, ДІТЕЙ, НЕ ДАЙТЕ ЙОГО ДЛЯ ВАС. СЛУХАЙТЕ ЦІ ХЛОЦІ, ПОВЕРНУЙТЕ ВАШЕ ПІДЛОГО. СЕРІЙНО

51

Є краще рішення вашої проблеми: перемістіть папку в більш відповідне місце (наприклад,% USERPROFILE% \ Documents)

Якщо у вас повинен бути доступ до папки з робочого столу, ви завжди можете створити ярлик. Це гарантує, що хоча ви випадково можете видалити ярлик, ви ніколи фактично не видаляєте папку або її дорогоцінний вміст самі.

Якщо інші програми залежать від того, що ця папка знаходиться на робочому столі, ви можете створити символічне посилання за допомогою команди «mklink». Оскільки символічні посилання обробляються на рівні файлової системи (хоча ярлики - це фактичні файли, які просто вказують на інше місце), проблем із сумісністю не повинно виникати з програмами, які намагаються використовувати цей тип "ярлика" у шляхах.


2
З огляду на обставини, це правильна відповідь.
Ангстром

Мені подобається ідея. але я не розумію, чи буде це працювати для Cygwin, який я встановив у згаданій папці на робочому столі. Чи це не спричинило б проблеми з моєю установкою та функціоналом Cygwin?
codezombie

@JasonStack, встановлення Cygwin може мати проблеми, якщо ви перемістите його в інше місце.
барбекю

1
@JasonStack, ви можете відредагувати своє запитання, щоб включити відомості про Cygwin, оскільки це впливає на можливі відповіді.
барбекю

1
@JasonStack Cygwin повинен ставитись до вузлів невидимо, як до точок кріплення Unix. Програми Unix знають про символічні посилання та новіші версії бібліотек Cygwin повинні сприймати символічні посилання (в стилі Vista) як такі, тому програма повинна "бачити" їх як щось особливе чи ні.
JDługosz

7

Так, потенційно обмежена можливою вашою версією Windows (Домашні версії можуть не мати можливості коригування права власності). Також майте на увазі, що видалення дозволів на видалення не є гарантією того, що ви не можете видалити папку . Мене кілька разів спалювали.

Ось метод, який зазвичай є надійним:

  1. Створіть нового користувача
  2. Призначте право власності на папку, яку ви не хочете мати змогу видалити цьому новому користувачеві
  3. Видаліть доступ користувача, щоб видалити папку, переконайтеся, що у неї є повні права доступу для читання / запису в папці.

Я використовував цей трюк у Windows NT для Windows 7. Іноді вам доведеться трохи пошарувати налаштуваннями, перш ніж ви зрозумієте, що це ідеально.

ТЕСТУЙТЕ ЦЕ НА НОВОМУ ПАПКУ (в тому числі створення файлів і папок у тестовій теці!

Також : Послухайте поради "Використовуйте резервні копії та контроль версій". Якщо файли такі важливі, вам потрібно принаймні 2 копії.


Windows Home Basic може налаштувати право власності; вони просто не включали жодного аплету для цього. Інструмент дозволів сторонніх розробників все ще працює. Також так званий PIDL "режим Бога" може містити його у списку; Я не пригадую. Це залежить від того, чи вони відмовилися від оснащення.
JDługosz

5

Файлові системи Windows мають прапор "лише для читання". Це простіше, ніж встановлювати дозволи DACL для такого простого ефекту.

У командному рядку використовуйте команду ATTR. У оболонці графічного інтерфейсу він повинен бути у Властивості, хоча gui може зробити щось складне і поза тим, що ви дійсно хотіли.


Крім того, якщо ви знову створите каталог з тим самим іменем, ви можете застосувати до нього «відновити попередні версії».


Оновлення

Я експериментував над системою Win7. GUI видалення (без кошика) ігнорує на Rпрапор на каталог. Немає жодних додаткових підказок про це, як і я бачив за Hта / або Sпрапорами. Видача rdз командного рядка надає доступ заборонений, як очікувалося. Однак ви не можете просто просто rdне порожній каталог: видалити файл і видалити каталог - це різні команди. Команда для рекурсивного видалення каталогу із вмістом видалить вміст, а потім не вдасться видалити тепер порожній каталог.

Отже, захист самого каталогу не працює в тому, що ви пам'ятаєте. І це означає, що будь-який більш фантастичний підхід до запобігання видаленню самого каталогу не завадить спочатку його спорожнити! Ви сказали, що ви все ще бажаєте нормального доступу до каталогу для створення та видалення файлів, тому повністю заблокувати його не є рішенням для вас.

Найкращим рішенням здається символічне посилання . Здійснення символічного посилання (новий стиль, те, що Windows Vista і вище називає символічним посиланням) до каталогу на робочому столі, коли каталог фактично існує десь в іншому місці, працює в тому сенсі, що якщо я видалю значок робочого столу (shift-delete, немає корзини) фактичний каталог не впливає, оскільки видалено лише посилання.

Shift-Delete значка робочого столу не хвилюється, якщо він позначений Rатрибутом.

Програма, що використовує стандартне діалогове вікно, відкрите для файлів Windows, без проблем переходить через симпосилання. Він фактично вирішив ім'я пов'язаного каталогу, тому відкритий файл був справжнім іменем; наприклад, Desktop\MyFolderстав, D:\scratch\MyFolderколи я переміщався по ньому.

Використовуючи посилання в старому стилі ( З'єднання ), програма побачила ім'я з переходом, який все ще знаходиться на шляху; наприклад, C:\Users\john\Desktop\MyFolder\test.txtтому факт, що це посилання, невидимий. Тим не менш, дія видалення GUI все ще трактує його як посилання, не помітно слідуючи за ним.

У будь-якому випадку, якщо програма робить використання псевдоніму імені безпосередньо він буде працювати. Але наявність файлів, які іноді бачать одне ім’я, а іноді й інші, може сплутати речі.

Висновок

Використовуйте З’єднання на робочому столі з папкою, дійсно розташованою в іншому місці, і це буде абсолютно прозорим, що це те, що відбувається. За бажанням можна використовувати DACL для запобігання випадкового видалення файлу точки з'єднання на робочому столі. Принаймні, мати сценарій, щоб заново створити його за потреби.

Бонус

Я цього не пробував, але мені цікаво, чи не могли б ви мати щось у «нових пунктах», щоб заново створити з'єднання чи символічне посилання? Потім просто клацніть правою кнопкою миші на тепер порожньому робочому столі, виберіть команду «Створити ...» і виберіть у меню пункт «Шпалери робочого столу». Попросіть його відновити все, що ви дійсно хотіли на робочому столі.


Я ніколи не чув про робочий стіл і розв'язку в Windows. Я знав, що це ярлик . Це ви маєте на увазі під переходом? До речі, я нещодавно виявив з відповідей та коментарів про mklink і перемістив потрібну папку ( Temp ) у папку «Документи», а потім побіг mklink mylink %userprofile%\Documents\Tempпо ній. Це спрацювало, і, здається, у мене немає проблем з програмами, що стосуються каталогу.
codezombie

Шпалери для робочого столу - це ім'я, яке я склав для свого сценарію. А точніше для пункту меню, який він додає, щоб викликати сценарій. Це каламбур на Desktop Junction та Junk Drawer. Ярлик це інша справа. Ярлики відомі лише оболонці графічного інтерфейсу і плутають все інше. Тому, ймовірно, це працює як символічні посилання при використанні діалогового вікна File-Open, але ви не зможете використовувати його як фактичне ім'я каталогу: "C: \ Users \ john \ Desktop \ Shortcutname \ foo.txt" не працюватиме.
JDługosz


2

Інша річ, яку ви можете розглянути, - це ввімкнути функцію «Історія файлів» для Windows 8.1. Це дозволить вашій системі автоматично зберігати історію змін у ваших файлах і папках. Краще використовувати з зовнішнім місцем зберігання, але може використовуватися і з локальним накопичувачем.

http://blogs.msdn.com/b/b8/archive/2012/07/10/protecting-user-files-with-file-history.aspx


Я не можу розмовляти з програмою Win 8.1 та тим, як працює Історія файлів, але у програмі Win 7 клацанням правою кнопкою миші на папці розкривається "Попередні версії" для відновлення файлів із попередньої "точки відновлення". Теоретично чудово, але якщо ви засипаєте диск, Windows відкидає попередню точку відновлення та ... пуф - більше немає попередньої версії. Не покладайтеся на ОС більше, ніж ви самі.
Ян Ш

Функція попередніх версій була видалена в програмі Win 8.1, функцією історії файлів є її заміна.
барбекю

Я розумію зміну функції, однак, питання про те, коли на диску не вистачить місця, щоб зробити нові записи історії файлів, те, що відбувається, залишається. Хочете перевірити це? Вказівки - не довіряйте ОС більше, ніж ви довіряєте собі, залишається.
Ян Ш

@Ian W, не впевнений, наскільки це актуально. Історія файлів створює резервні копії на окремому томі зберігання. Повне заповнення жорсткого диска не може замінити резервні копії, оскільки вони знаходяться в окремому томі.
барбекю

1

Ефективним рішенням може бути переміщення папки з робочого столу, а потім встановлення з'єднання NTFS за допомогою MKLINKкоманди.

C: \ Користувачі \ Адміністратор> MKLINK

Створюється символічне посилання.

MKLINK [[/ D] | [/ Н] | [/ J]] Ціль посилання
        / D Створює символьне посилання каталогу. За замовчуванням - це файл
                символічне посилання.
        / H Створює жорстке посилання замість символічного посилання.
        / J Створює з'єднання каталогів.
        Посилання вказує нове символічне ім'я посилання.
        Target вказує шлях (відносний або абсолютний), який нове посилання
                зсилається.

Отже, у вашому випадку командою було б:

MKLINK /J %userprofile%\Desktop\ImportantFolder D:\ImportantFolder

Де D:\ImportantFolderфактична папка і %userprofile%\Desktop\ImportantFolderперехід.

Примітки:

  • Junction не повинен мати те саме ім'я вихідної папки.
  • З'єднання не є копією, насправді є перенаправленням інший спосіб доступу до вашої папки. Уявіть, що це як foldr версія звичайного ярлика (* .lnk).
  • З'єднання відрізняються від звичайних ярликів до папок тим, що вони повністю прозорі для програм.
  • Якщо з'єднання видалено, фактична папка не видаляється.
  • Але будь-яка модифікація файлу - це те саме, що робити D:\ImportantFolderі робити речі. Тож якщо ви видалите passwords.txtфайл у стику, ви його також видалили d:/ImportantFolder.
  • Якщо ви випадково видалите з'єднання, ви створите його знову.

Графічний (більш ефективний і легший ) спосіб (із розширенням контекстного меню)

Ви можете замість цього встановити розширення Link Shell, потім перенести папку кудись інше, клацніть правою кнопкою миші та виберіть, Pick link source...потім клацніть правою кнопкою миші робочий стіл та виберіть drop as...-> Junction. І ви закінчили.

Це перший додаток, який я встановлюю на свіжих системах, оскільки це надзвичайно корисне рішення. Я настійно рекомендую це, якщо вам коли-небудь доведеться керувати розв'язками або жорсткими / символічними посиланнями на вашому ПК.


0

Ви можете створити резервну копію всіх файлів і папок за один привід. Ви можете використовувати його безкоштовно, але обмежено 15 Гбіт. Однак якщо у вас є підписка на офіс 365, ви маєте 1 ТБ накопичувача в onedrive, і він включений.


Дякую за пропозицію, але в даний час я не можу використовувати резервне копіювання хмари через інтенсивні операції читання / запису в цій папці, а отже, обмеження у використанні пропускної здатності.
codezombie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.