היררכיה - הדפסת מערכת הקבצים

תגיות:

אהלן,
אם נצא מנקודת הנחה שמערכת הקבצים בכללותה היא גם בתצורה של מחלקה,
אני מסתבכת עם הקונספט של הדפסת המחלקה באמצעות הפקודה str. באידיאל הייתי רוצה שתודפס ממש כל המערכת - כל תיקיה ותתי תיקיותיה, תתי התיקיות שלהם והקבצים תחתיהם.
א-ב-ל, וכאן אני אנסה להסתיר למקרה שזה ספוילר -

תקציר

לא נראה לי שיש דרך אחרת לעשות את זה מלבד רקורסיה… נניח שלמחלקת מערכת הקבצים יש תכונה שהיא מבנה נתונים שמאכלס את כל הקבצים. למשל רשימה שנראית כך (כאשר פולדר זה סוג נתונים שמאכלס בתוכו קבצים בינארים או קבצי טקסט, או תיקיות אחרות): [TextFile, Folder, BinaryFile, File, Folder, Folder]. פעולת ה-str תעבור על מבנה הנתונים ותכניס לסטרינג כל פעם את File.path. הבעיה היא שאם הקובץ שעליו היא עוברת הוא תיקיה, היא צריכה להיכנס פנימה ולהדפיס גם את מה שתחתיו, וכן הלאה אם היא פוגשת גם תחת התיקיה הזו עוד תיקיות. בקיצור - נשמע לי כמו רקורסיה.

האם סיבכתי את עצמי לחלוטין ויש דרך יותר פשוטה להגיע לזה?!

תודה מראש למי שהצליח\ה להגיע עד הלום!

בגדול נשמע הגיוני מאוד. אם אני לא טועה אפילו הפונקציה שעושה את זה במודול os היא רקורסיבית.

לא דרשו לעשות הדפסה של הכל … אבל אם בא לך תנסי (:

לייק 1

אפשר לעשות את זה גם בלולאת while
ולחשוב מה התנאי עצירה צריך להיות…
אבל בהחלט נשמע שלבעיה הזאת הפתרון המתאים הוא רקורסיה… את יכולה לקחת את זה כתרגיל צד
שלא קשור לתרגיל המקורי ולתת לו רשימה לפי הקלט הרצוי ולבדוק שהקוד עובד כמו שהתכוונת…
את מוזמנת להתייעץ איתי בפרטי לגבי הקוד…
בהצלחה!
:slight_smile:

לייק 1