ระบบไฟล์ Windows มีแฟล็ก "อ่านอย่างเดียว" นั้นง่ายกว่าการตั้งค่าการอนุญาต DACL สำหรับเอฟเฟกต์แบบง่าย ๆ
ในพรอมต์คำสั่งใช้คำสั่ง ATTR ในเชลล์ GUI ควรอยู่ใน Properties แม้ว่า gui อาจทำอะไรที่ซับซ้อนและเกินกว่าที่คุณต้องการจริงๆ
นอกจากนี้หากคุณสร้างไดเรกทอรีใหม่ด้วยชื่อเดียวกันคุณสามารถใช้ "กู้คืนเวอร์ชันก่อนหน้า" ได้
ปรับปรุง
ฉันทดลองใช้ระบบ Win7 การลบ GUI (ไม่มีถังขยะรีไซเคิล) จะละเว้นการRตั้งค่าสถานะในไดเรกทอรี ไม่มีคำเตือนเตือนเพิ่มเติมเกี่ยวกับเรื่องนี้เช่นเดียวกับที่ฉันเคยเห็นHและ / หรือตั้งSค่าสถานะ การออกrdจากบรรทัดคำสั่งให้สิทธิ์การเข้าถึงถูกปฏิเสธตามที่คาดไว้ อย่างไรก็ตามคุณไม่สามารถrdเป็นไดเร็กตอรี่ที่ไม่ว่างได้: ลบไฟล์และลบไดเร็กตอรี่เป็นคำสั่งต่าง ๆ . คำสั่งเพื่อลบไดเรกทอรีที่มีเนื้อหาซ้ำ ๆ จะลบเนื้อหาและไม่สามารถลบไดเรกทอรีว่างได้เลย
ดังนั้นการปกป้องไดเรกทอรีเองจึงไม่สามารถใช้งานได้ในการกระทำของ GUI ที่คุณมีอยู่ในใจ และมันก็หมายความว่าวิธีการที่นักเล่นใด ๆ ในการป้องกันตัวเองจากการลบไดเรกทอรีจะไม่ป้องกันมันจากการถูกทำให้ว่างเปล่าก่อน! คุณบอกว่าคุณยังคงต้องการการเข้าถึงปกติภายในไดเรกทอรีเพื่อสร้างและลบไฟล์ดังนั้นการล็อกไฟล์ลงไปอย่างสมบูรณ์จึงไม่ใช่วิธีแก้ปัญหาสำหรับคุณ
ทางออกที่ดีที่สุดน่าจะเป็นการเชื่อมโยงสัญลักษณ์ การสร้างลิงก์สัญลักษณ์ (รูปแบบใหม่สิ่งที่ Windows Vista ขึ้นไปเรียกลิงก์สัญลักษณ์) ไปยังไดเรกทอรีบนเดสก์ท็อปเมื่อไดเรกทอรีมีอยู่จริงที่อื่นทำงานในแง่ที่ว่าถ้าฉันลบไอคอนเดสก์ท็อป (shift-delete, ไม่มีถังขยะรีไซเคิล) ไดเรกทอรีที่แท้จริงไม่ได้รับผลกระทบเนื่องจากมีการลบเฉพาะลิงก์
Shift-Delete ของไอคอนเดสก์ท็อปไม่สนใจว่ามีการทำเครื่องหมายด้วยRแอตทริบิวต์
โปรแกรมที่ใช้กล่องโต้ตอบเปิดไฟล์ Windows มาตรฐานนำทางผ่าน symlink โดยไม่มีปัญหา จริง ๆ แล้วมันแก้ไขชื่อของไดเรกทอรีที่ถูกเชื่อมโยงดังนั้นไฟล์ที่เปิดนั้นเป็นชื่อจริง เช่นDesktop\MyFolderกลายD:\scratch\MyFolderเป็นเมื่อฉันนำทางผ่านมัน
การใช้ลิงค์แบบเก่า ( จังก์ชัน ) โปรแกรมจะเห็นชื่อที่มีทางแยกอยู่ในพา ธ ; เช่นC:\Users\john\Desktop\MyFolder\test.txtความจริงที่ว่ามันเป็นลิงค์ที่มองไม่เห็น กระนั้นการดำเนินการลบ GUI ก็ยังถือว่าเป็นลิงก์ไม่ใช่ติดตามอย่างล่องหน
ทั้งสองวิธีถ้าโปรแกรมไม่ใช้ชื่อ aliased โดยตรงมันจะทำงาน แต่บางครั้งการเห็นไฟล์ด้วยชื่อหนึ่งและบางครั้งไฟล์อื่นอาจทำให้สับสน
ข้อสรุป
ใช้ Junction บนเดสก์ท็อปกับโฟลเดอร์ที่อยู่ที่อื่นและมันจะโปร่งใสอย่างสมบูรณ์ว่านี่คือสิ่งที่เกิดขึ้น หรือไม่ก็ใช้ DACL เพื่อป้องกันการลบไฟล์จุดแยกบนเดสก์ท็อปโดยไม่ตั้งใจ อย่างน้อยก็ให้สคริปต์สร้างใหม่เมื่อจำเป็น
โบนัส
ฉันไม่ได้ลองสิ่งนี้ แต่ฉันสงสัยว่าคุณสามารถมีบางสิ่งใน "รายการใหม่" เพื่อสร้างทางแยกหรือลิงก์สัญลักษณ์ใหม่ จากนั้นเพียงคลิกขวาที่เดสก์ท็อปที่ว่างเปล่าเลือกใหม่ ... แล้วเลือก "ขยะเดสก์ทอป" จากเมนู ให้มันคืนค่าทุกสิ่งที่คุณต้องการบนเดสก์ท็อป