@975 @אורי @א.מ.ד. לא תכננתי כזה ביקוש...
טוב, אז אסביר בקצרה כי יש לי יום עמוס. אני מקווה שזה יצא ברור, זה לא מורכב כמו שזה נראה.
אני מניח מראש שמדובר כאן בכרטיס עם מערכת קבצים FAT32 (או exFAT). במערכות האלו אין באמת הבדל מהותי בין קובץ לתיקייה - גם תיקיה היא בעצם "קובץ רשימה" של הפריטים שנמצאים בתוכה
התיקייה היחידה שיש לה מיקום קשיח וקבוע בדיסק היא תיקיית השורש. היא נמצאת בדרך כלל מיד אחרי טבלאות ה-FAT, ומשם מתפרס כל העץ של הקבצים והתיקיות.
בתוך כל תיקיה יש רשומות לכל הקבצים והתיקיות שבתוכה. כל רשומה כזו תופסת בדיוק 32 בתים (ומכאן השם FAT32). הרשומה מכילה מטא-דאטה: שם, תאריך יצירה, גודל, ונתון נוסף - הכתובת שבה הקובץ מתחיל בכרטיס.
להבנה טובה יותר של המנגנון רק נסביר
מערכת הקבצים מחלקת את הדיסק למקטעים שנקראים אשכולות. כל קובץ או תיקייה יכולים לשבת על אשכול אחד או יותר.
כשהמחשב רוצה לקרוא תיקייה או קובץ, הוא לוקח את מספר האשכול מהרשומה והולך לטבלה שנקראת FAT (File Allocation Table). בטבלה הזו יש שורה לכל אשכול ובה רשום מה האשכול הבא בתור:
אם יש המשך: יופיע מספר האשכול הבא.
אם הקובץ נגמר: יופיע ערך כמו 0FFFFFFF (בדרך כלל).
אם האשכול פנוי: יופיעו פשוט אפסים.
התקלה שקרתה כאן (ג'יבריש ותיקיות שלא נמחקות) קוראת כשיש שינוי כלשהו בתיקייה שלא נסגר טוב (ניתוק פתאומי, באג בכתיבה או כשל בחומרה). במצב כזה, הרישום של האשכול שמתחיל את התיקייה משתבש ונרשמת כתובת שגויה.
כשהמחשב הולך לאותו אשכול "שגוי" כדי לקרוא את תוכן התיקייה, הוא לא מוצא רשימת קבצים מסודרת. אלא נתוני זבל (תוכן של קובץ אחר לדוגמה) ומנסה בכוח לפרש אותם כתוכן של תיקייה.
ולכן רואים קבצים ותיקיות עם שמות שנראים כמו ג'יבריש כי המחשב מתרגם בייטים אקראיים לתווים.
והסיבה שאי אפשר למחוק - כי הנתונים האלו מצביעים לאזורים בדיסק שלא קיימים וגם מכילים תווים "אסורים" בשמות שלהם
גילוי נאות: אני כתבתי אבל נעזרתי קצת ב AI לניסוח