PracticU

The File System

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › The File System
מילון מושגים:
מערכת קבצים - השיטה שבה מערכת ההפעלה מארגנת, שומרת ומנהלת קבצים ותיקיות על התקן אחסון, למשל NTFS.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
אחסון - שמירת נתונים באופן קבוע על התקנים כמו דיסקים או שירותי ענן, כך שיישמרו גם לאחר כיבוי.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.

The File System
בשיעור מתחילים לעבוד עם קבצים ותיקיות באנדרואיד: איך מקבלים נתיב לתיקיות במכשיר, והבדלים בין תיקיות פנימיות לחיצוניות. ההמשך בקורס יראה יצירת קבצים, כתיבה וקריאה.
המחלקה File והפונקציות לנתיבים
1. המחלקה File: למרות שמה, היא מתארת קובץ או תיקייה. הבנאי מקבל נתיב. דרכה מקבלים את הנתיב המדויק, ואפשר ליצור קובץ או תיקייה שלא קיימים. הם יכולים להיות בדיסק של המכשיר או בזיכרון משותף כמו SD Card.
2. getFilesDir: תיקייה פרטית של האפליקציה. אפליקציות אחרות והמשתמש לא ניגשים אליה, והיא נמחקת בהסרת האפליקציה. מתאימה לקבצים שרק האפליקציה משתמשת בהם. הנתיב הוא data, data, שם החבילה, files.
3. getExternalFilesDir: תיקייה ספציפית לאפליקציה, אבל נגישה למשתמש, ונמחקת בהסרה. עם null מקבלים את תיקיית files בתוך storage, emulated, 0, Android, data וחבילת האפליקציה. עם קבוע (Music, Podcasts, Ringtones, Alarms, Notifications, Pictures, Movies) מקבלים תיקייה ייעודית לסוג התוכן.
4. getExternalStorageDirectory ו-getExternalStoragePublicDirectory: תיקיות משותפות, בדרך כלל על SD Card. נגישות למשתמש ולאפליקציות אחרות, ונשארות אחרי הסרת האפליקציה. השנייה מקבלת קבוע כמו Environment.DIRECTORY_MOVIES, ואת התיקייה מקבלים ישירות תחת emulated 0 ולא בתוך חבילת האפליקציה.
שימו לב
- בתיקיות חיצוניות חייבים לבדוק שהן קיימות, כי ה-SD Card עשוי להיות מוצא.
- קריאה וכתיבה בהן דורשות הרשאות במאניפסט.
אחרי השיעור אפשר לבחור את הפונקציה המתאימה לפי השאלה אם הקובץ פרטי לאפליקציה, נגיש למשתמש, או צריך לשרוד הסרה של האפליקציה.
השיעור הבא בקורס: File System Paths

פרקי ההרצאה: The File System

  1. 00:00

    המחלקה File לקבצים ותיקיות

  2. 01:38

    פונקציות להשגת נתיבי תיקיות

  3. 02:20

    getFilesDir לתיקייה פרטית

  4. 02:56

    getExternalFilesDir נגישה למשתמש

  5. 03:33

    תיקיות משותפות והרשאות במניפסט

  6. 04:29

    מיקום התיקיות בפועל במכשיר

  7. 05:45

    קבועים לתיקיות כמו Music

תמלול ההרצאה: The File System

הטקסט המלא של הדקות הראשונות בהרצאה «The File System» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אנחנו מגיעים לנושא חדש שנקרא The File System, כלומר מערכת הקבצים והתיקיות באנדרואיד. כאן אנחנו הולכים לראות איך אנחנו יכולים ליצור קובץ, איך אנחנו יכולים לכתוב אליו, איך אנחנו יכולים לקרוא ממנו, מה ההבדל בין קבצי טקסט לקבצים בינאריים, איזה תיקיות קיימות במכשיר ואיך אנחנו יכולים

  2. 00:24

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

  3. 00:45

    היא מקבלת לקונסטרקטור שלה נתיב או לקובץ או לתיקייה והיא מתארת את הקובץ או התיקייה האלה ומצביעה עליהם.

  4. 00:55

    דרך המחלקה הזאת אנחנו יכולים להשיג את הטובת המדויקת שלהם, כלומר את המיקום איפה בדיוק הם נמצאים. אם לדוגמה הקובץ או התיקייה לא נמצאים, אנחנו יכולים דרך האובייקט הזה ליצור אותם.

  5. 01:10

    הקובץ או התיקייה יכולים להיות על ה-hard disk של המכשיר עצמו, והקובץ או התיקייה יכולים להיות על Shared memory, איזשהו זיכרון שהוא יכול להיות משותף למספר מחשבים, לדוגמה SD card שאפשר לשלוף אותו ולהעביר אותו למחשב אחר.

  6. 01:27

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

  7. 01:48

    כל פונקציה כזאת מחזירה אובייקט פייל כמו שראינו, ודרך האובייקט פייל אנחנו יכולים להשיג את הנתיב הספציפי לתיקייה. פונקציות נפוצות כאלה get files dir, external files dir, get external storage directory ו-get external storage public directory.

  8. 02:14

    כבר אנחנו הולכים לראות מה ההבדל בין כל אחת מהן ומה כל אחת מהן בדיוק מביאה לנו. נתחיל עם get files dir. get files dir מחזירה דירקטורי שהיא ספציפית לאפליקציה שלנו.

  9. 02:30

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

  10. 02:43

    התיקיות האלה נמחקות אוטומטית כאשר מבצעים uninstall לאפליקציה. זאת אומרת שאם אנחנו רוצים שיהיה לנו איזושהי תיקייה או קובץ שהם לשימוש פנימי של האפליקציה ואנחנו לא רוצים שאף אחד יוכל להתעסק עם הקובץ הזה או עם התיקייה הזאת וזה אך ורק לאפליקציה,

  11. 03:01

    get files dir היא הפונקציה המתאימה לנו. getExternalFilesDir מחזירה לנו גם כן תיקייה שהיא ספציפית לאפליקציה, אבל היא כן נגישה על ידי היוזר.

  12. 03:15

    תיקיות כאלה גם נמחקות כאשר מבצעים uninstall לאפליקציה. getExternalStorageDirectory ו-getExternalStoragePublicDirectory מחזירות לנו תיקייה משותפת בדרך כלל התיקיות האלה יהיו על איזשהו זיכרון משותף כמו SD-Card.

  13. 03:37

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

  14. 03:59

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

  15. 04:23

    בואו נראה כל אחת מהפונקציות איפה בדיוק היא יוצרת לנו את הקובץ או התיקייה. אז get files dir יש לנו את התיקייה הראשית data בתוכה תיקייה נוספת data בתוכה יש את התיקייה של הpackage של האפליקציה שלנו ובתוכה תיקיית files כאן בעצם אנחנו יכולים ליצור קבצים או תיקיות כאשר אנחנו משתמשים ב-get files dir זאת אומרת get files

  16. 04:54

    dir מחזירה לנו את הנתיב לתיקיית files הזאת וכאן אנחנו יכולים להיכנס פנימה וליצור עוד קבצים או תיקיות. get external files dir, כאשר אנחנו שולחים ל-null, מחזירה לנו את הנתיב המיוחד הזה, files בתוך הפאקג' של האפליקציה, אבל שימו לב שזה נמצא ב-storage, כלומר יש איזושהי תיקייה חיצונית שנקראת

  17. 05:25

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

  18. 05:53

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

  19. 06:09

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

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Shared Preferences Activity

ההרצאה הבאה: File System Paths

הרצאות קשורות מקורסים אחרים

  • System Testing
  • Importing File
  • Create File
  • Configuration File

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון