如何防止文件夹被自己无意中删除?

cod*_*bie 40 windows-8.1

我的桌面上有一个非常重要的文件夹。我偶尔会清理我的桌面,我很担心我可能会无意中删除提到的文件夹。有没有办法在不限制我对文件夹内容的频繁读写操作的情况下防止这种灾难?注意有时我不介意将文件夹内的内容一一删除,但文件夹本身对我很重要。如果被删除,我会失去很多努力。

Cod*_*ter 110

不要试图避免不可避免的事情。使用备份和版本控制。

不过,您可以拒绝自己的删除权限。删除该目录中的文件和文件夹是一项单独的权限,您也可以在需要时禁用该权限。

  • 关于备份 + 版本控制建议的好声音。 (26认同)
  • 同意。在没有备份的情况下运行只是在未来的某个时间点丢失数据 - 当,而不是如果。现在,如果你能原谅我*赶紧去仔细检查备份* (11认同)
  • 你问发生这种情况的几率有多大?非常好,去年年底我自己不小心删除了一个文件夹,里面装满了我无法取回的重要内容。重要的警钟,我现在在 GitHub 中积极备份我的工作,在 BitBucket 上进行镜像,并在便携式硬盘上进行镜像。从幸存者那里拿走,孩子们,不要让它发生在你身上。听听这些人的声音,备份你的东西。严重地。 (9认同)
  • 作为 IT 人员,请对所有重要文件使用备份和版本控制,尤其是对客户或您的企业而言。请,请,请。 (7认同)
  • @bertieb 这很重要。OP 不必意外删除文件夹以丢失其工作,驱动器明天可能会死。 (6认同)
  • 使用过 SVN 和 git 后,我​​不会用 10 英尺长的杆子接触 SVN,除非有人付钱给我这样做。使用 git。 (3认同)
  • 如果重要数据不存在于至少 3 个不同的物理位置,则它根本不存在。 (2认同)

sli*_*per 50

您的问题有一个更好的解决方案:将文件夹移动到更合适的位置(例如 %USERPROFILE%\Documents)

如果您必须从桌面访问该文件夹,您始终可以创建一个快捷方式。这可确保虽然您可能会意外删除快捷方式,但您永远不会真正删除文件夹或其宝贵内容本身。

如果其他应用程序依赖于桌面上的此文件夹,您可以使用“mklink”命令创建符号链接。由于符号链接是在文件系统级别处理的(而快捷方式是仅指向另一个位置的实际文件),因此尝试在路径中使用此类“快捷方式”的程序不应存在任何兼容性问题。

  • 鉴于这种情况,这是正确的答案。 (3认同)

小智 7

是的,可能会受到您使用的 Windows 版本的限制(家庭版本可能无法调整所有权)。另外,请注意,删除您的删除权限并不能保证您不能删除文件夹。我被烧过多次。

这是一种通常万无一失的方法:

  1. 创建一个新用户
  2. 将您不想删除的文件夹的所有权分配给这个新用户
  3. 删除您的用户删除文件夹的权限,确保您的用户对该文件夹具有完全读/写权限。

我在 Windows NT 到 Windows 7 上都使用过这个技巧。有时你必须在设置上稍微调整一下才能让它完美。

首先在新文件夹上测试(包括在测试文件夹中创建文件和文件夹!

另外:注意“使用备份和版本控制”的建议。如果文件那么重要,则至少需要 2 份副本。


JDł*_*osz 5

Windows 文件系统有一个“只读”标志。这比为这样一个简单的效果设置 DACL 权限要简单。

在命令提示符下,使用 ATTR 命令。在 GUI shell 中,它应该在 Properties 中,尽管 gui 可能会做一些复杂的事情并且超出您真正想要的范围。


此外,如果您重新创建一个具有相同名称的目录,则可以对其应用“恢复以前的版本”。


更新

我在Win7系统上进行了实验。该GUI删除(不回收站)忽略R对目录标志。也没有关于它的其他提示警告,就像我看到的H和/或S标志一样。rd从命令行发出会按预期拒绝访问。但是,rd无论如何你不能只是一个非空目录:删除文件和删除目录是不同的命令。递归删除包含内容的目录的命令将删除内容,而不是删除现在为空的目录。

因此,保护​​目录本身在您想到的 GUI 操作中不起作用。这意味着任何防止目录本身被删除的更高级的方法都不会阻止它首先被清空!您说您仍然希望在目录中正常访问以创建和删除文件,因此完全锁定它不是您的解决方案。

最好的解决方案似乎是符号链接。制作一个符号链接(新的风格,什么样的Windows Vista及以上的现在叫符号链接)台式机,当目录确实存在别的地方,就到该目录的工作在这个意义上,如果我删除的桌面图标(Shift-Delete键,没有回收站)实际目录不受影响,因为只有链接被删除。

桌面图标的 Shift-Delete 不在乎是否标有R属性。

使用标准 Windows 文件打开对话框的程序通过符号链接导航没有问题。它实际上解析了链接目录的名称,因此打开的文件是真实名称;例如,当我浏览它时Desktop\MyFolder变成D:\scratch\MyFolder了。

使用旧式链接(一个Junction),程序看到了这个名字,而这个连接点仍然在路径中;例如C:\Users\john\Desktop\MyFolder\test.txt,它是一个链接的事实是不可见的。然而,GUI 删除操作仍将其视为链接,而不是不可见地跟随它。

无论哪种方式,如果程序确实直接使用别名,它将起作用。但是,有时以一个名称看到文件,有时以另一个名称看到文件可能会使事情变得混乱。

结论

使用桌面上的 Junction 和真正位于其他地方的文件夹,这将是完全透明的。或者,使用 DACL 防止意外删除桌面上的连接点文件。至少,有一个脚本可以在需要时重新创建它。

奖金

我没有试过这个,但我想知道你是否可以在“新项目”中添加一些东西来重新创建连接点或符号链接?然后只需右键单击现在为空的桌面,选择新建...并从菜单中选择“桌面垃圾”。让它恢复您在桌面上真正想要的一切。