PracticU

File System Paths

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

File System Paths
איך רואים בפועל לאן מצביעות הפונקציות שמחזירות תיקיות? בשיעור כותבים ל-Log את הנתיב שכל אחת מחזירה, ובודקים אותו גם ב-DDMS.
השלבים העיקריים
1. כתיבה ל-Log: קוראים ל-Log.i עם תג כמו testfs עבור getFilesDir, getExternalFilesDir(null), getExternalFilesDir(Environment.DIRECTORY_MUSIC), Environment.getExternalStorageDirectory() ו-Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).
2. המרה למחרוזת: הפונקציות מחזירות אובייקט File, ולכן קוראים ל-getAbsolutePath כדי לקבל את הנתיב.
3. קריאת התוצאות: ב-LogCat מסננים לפי רמת Information ולפי התג testfs.
4. איך מבחינים בין פנימי לחיצוני: אם הנתיב מכיל את שם החבילה של האפליקציה, הקבצים נמחקים בהסרת האפליקציה. אם אין בו שם חבילה, זה אחסון חיצוני שנשאר, ונגיש גם לאפליקציות אחרות.
5. בדיקה ב-DDMS: בכלי רואים את מבנה התיקיות של האמולטור. ב-data/data/<package>/files נמצאים הקבצים של getFilesDir. ב-storage/emulated/0/Android/data/<package>/files נמצאות תיקיות החיצוני הפרטי לאפליקציה (למשל Music). בתוך storage/emulated/0 ישירות נמצאות תיקיות כמו Movies ו-Music, אלה התיקיות הציבוריות.
שימו לב
- תיקייה ספציפית (כמו Music) נוצרת רק אחרי שקוראים לפונקציה שמבקשת אותה.
- קריאה וכתיבה באחסון החיצוני דורשות הרשאה במאניפסט.
כעת אפשר לזהות איפה בדיוק במכשיר ימצא קובץ שנכתוב דרך כל אחת מהפונקציות.
השיעור הבא בקורס: Create Directory

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

  1. 00:00

    הדפסת נתיבי התיקיות ל-Log

  2. 00:40

    getAbsolutePath לקבלת הנתיב

  3. 01:19

    getExternalFilesDir וקבועי תיקיות

  4. 02:17

    צפייה בתוצאות ב-LogCat

  5. 03:14

    נתיבים שנמחקים עם הסרת האפליקציה

  6. 03:51

    עיון בקבצים עם DDMS

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

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

  1. 00:02

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

  2. 00:17

    אז בואו ניגש ל-log.i, ניתן כאן איזשהו tag כזה שיאפשר לנו לזהות אחר כך בקלות את הלוג, נקרא לזה test.fs כלומר File System, זה פשוט נקרא לכל אחת מהפונקציות שראינו ונראה מה מוחזר ממנה.

  3. 00:36

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

  4. 01:00

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

  5. 01:14

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

  6. 01:31

    לדוגמה environment, נקודה דירקטורי מיוזיק בואו ניקח את המיוזיק שהיה לנו שם פונקציה נוספת שראינו הייתה environment.get external storage directory ואנחנו פשוט קוראים לה בצורה כזאת כפונקציה שלא מקבלת שום דבר ולאחר מכן ראינו פונקציה נוספת get external storage public דירקטורי אבל הפונקציה הזאת כן מקבלת את אחד הקבועים לדוגמה environment.directoryMusic

  7. 02:12

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

  8. 02:34

    נעביר את זה ל-Information כי אנחנו השתמשנו עם log.i ונכניס כאן את ה-Tag test.fs ונראה רק את ההדפסות שלנו. אז הנה אנחנו רואים, בואו נשים את זה פה אחד ליד השני, והנה אנחנו רואים את ההדפסה הראשונה של get files adhere, אנחנו רואים שזה מוחזר כ-data user אבל בפועל זה לא יהיה user,

  9. 02:58

    זה יהיה data, data. לאחר מכן יש את ה-com.practicue שזה ה-package שלנו, אנחנו יכולים לראות אותו כאן, אנחנו יכולים לראות אותו כאן, שזה ה-package שאנחנו תמיד משתמשים איתו.

  10. 03:12

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

  11. 03:35

    אם הנתיב לא כולל את ה-package name אז זה external storage והוא יישאר גם אם נסיר את האפליקציה. כמובן הוא נגיש גם לאפליקציות אחרות. איך אנחנו יכולים לראות את זה פיזית בתוך המכשיר או בתוך האמולטור?

  12. 03:48

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

  13. 04:08

    היה לנו כאן את data, ובתוך data יש לנו עוד פעם את data, ובתוך אנחנו יכולים לחפש את ה-package name שלנו, הנה הוא פה, ובתוכו אנחנו יכולים לראות את ה-files.

  14. 04:23

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

  15. 04:39

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

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

ההרצאה הקודמת: The File System

ההרצאה הבאה: Create Directory

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

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

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

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