iOS จะลบไฟล์ในทางเทคนิคและสามารถลบได้อย่างไร?


11

เรามีการสนทนาที่น่าสนใจเกี่ยวกับการลบไฟล์บนอุปกรณ์ iOS ที่นี่ คำถามคือถ้าฉันลบไฟล์โดยใช้ NSFileManager เกิดอะไรขึ้นภายใต้ประทุน?

ความเข้าใจของฉันคือการลบจะดำเนินการโดยการลบรายการไฟล์ที่เกี่ยวข้องจากตารางระบบไฟล์

อาร์กิวเมนต์ตัวนับคือตัวจัดการไฟล์ยังคงอยู่ในทางใดทางหนึ่งและเฉพาะค่าสถานะที่ได้รับการตั้งค่าซึ่งทำเครื่องหมายไฟล์เป็นลบ หากผู้ใช้มีการเข้าถึงรูทอุปกรณ์ iOS ผู้ใช้สามารถรีเซ็ตการตั้งค่าสถานะนั้นและกู้คืนเนื้อหาไฟล์

ในทั้งสองกรณีเรายอมรับว่าเนื้อหาไฟล์จริงจะไม่ถูกเขียนทับและไบต์ธรรมดายังคงอยู่ในหน่วยความจำแฟลช / ดิสก์จนกระทั่งบล็อกถูกครอบครองโดยไฟล์อื่น

แนวคิดอยู่ในขณะนี้: ถ้ารุ่นที่สองเป็นจริงเราสามารถเขียนทับไฟล์ที่มีเนื้อหาหนึ่งไบต์ก่อนที่จะลบ (แม้ว่าไบต์นั้นจะถูกเขียนไปยังตำแหน่งใหม่บนแฟลชไดรฟ์โดยไม่ต้องเขียนทับเนื้อหาเก่าจริง ๆ ) หากไฟล์นั้นถูกกู้คืนจะมีเพียงหนึ่งไบต์ที่เขียนทับเนื้อหาเท่านั้น

โปรดทราบว่าเราไม่ได้พูดถึงการวิเคราะห์ทางนิติเวชของแฟลชไดรฟ์ซึ่งอาจกู้คืนเนื้อหาไฟล์ต้นฉบับได้

ดังนั้นเพื่อสรุป:

  • การลบไฟล์บน iOS ทำงานอย่างไรภายใน
  • วิธีการเขียนทับช่วยป้องกันการลบหรือไม่?

คำตอบ:


3

ฉันเชื่อใน Unix ว่าระบบไฟล์ถูกแก้ไขตามที่คุณแนะนำ (รายการจะถูกลบออกจากตารางระบบไฟล์) ใน Windows ตารางระบบไฟล์จะถูกแก้ไขและไฟล์จะถูกตั้งค่าสถานะเป็นลบ - เครื่องมือการกู้คืนข้อมูลสามารถยกเลิกการลบไฟล์ เมื่อดูที่ Windows ยกเลิกการลบแอปพลิเคชันฉันคิดว่าชื่อไฟล์นั้นได้รับการแก้ไขด้วยดังนั้นเมื่อยกเลิกการลบคุณต้องระบุชื่อไฟล์ที่ถูกต้อง การแก้ไขชื่อไฟล์จะหมายถึงหากคุณสร้างไฟล์ที่มีชื่อเดียวกับที่คุณเพิ่งลบไประบบปฏิบัติการจะไม่ต้องปรับยอดให้มีสองไฟล์ที่มีชื่อเดียวกัน

MacOSX และ Windows มีถังขยะ (ถังขยะ) ซึ่งฉันคิดว่ามีการใช้โฟลเดอร์พิเศษที่คัดลอกไฟล์ที่ถูกลบ เมื่อคุณล้างถังขยะโฟลเดอร์นี้จะถูกลบ - โดยการปรับเปลี่ยนตารางไฟล์ระบบ หากคุณใช้ NSFileManager จะเป็นการหลีกเลี่ยงถังขยะ (ซึ่งไม่มีอยู่ใน iOS อยู่แล้ว) ดังนั้นจึงเป็นการลบที่แท้จริง เช่นเดียวกันถ้าคุณ "rm" จากหน้าต่างเทอร์มินัล

หากคุณสร้างไฟล์ใหม่ที่มีชื่อเดียวกันกับไฟล์เก่าใน Unix มันเป็นเพียงรายการใหม่ในตารางไฟล์ระบบ แต่เนื่องจากรายการเก่าถูกลบออกจากตารางจะไม่มีประโยชน์ในการสร้าง รายการใหม่

นั่นคือความเชื่อของฉันและฉันพร้อมแล้วสำหรับการลงคะแนนเสียง ;-)


คุณพูดถูกเกี่ยวกับถังขยะใน OS X แน่นอนมันเป็นแค่โฟลเดอร์พิเศษไม่มีอะไรอื่นอีกแล้ว และคุณสามารถเห็นมันเป็นโฟลเดอร์ภายใต้ไดเรกทอรีบ้านของคุณเมื่อคุณทำให้ไฟล์ที่มองไม่เห็นของคุณมองเห็นได้
Sürmeliสามารถ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.