
Log.i עם תג כמו testfs עבור getFilesDir, getExternalFilesDir(null), getExternalFilesDir(Environment.DIRECTORY_MUSIC), Environment.getExternalStorageDirectory() ו-Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).File, ולכן קוראים ל-getAbsolutePath כדי לקבל את הנתיב.testfs.data/data/<package>/files נמצאים הקבצים של getFilesDir. ב-storage/emulated/0/Android/data/<package>/files נמצאות תיקיות החיצוני הפרטי לאפליקציה (למשל Music). בתוך storage/emulated/0 ישירות נמצאות תיקיות כמו Movies ו-Music, אלה התיקיות הציבוריות.Music) נוצרת רק אחרי שקוראים לפונקציה שמבקשת אותה.הטקסט המלא של הדקות הראשונות בהרצאה «File System Paths» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שהכרנו אילו פונקציות קיימות שמסוגלות להביא לנו כל מיני תיקיות במכשיר, בואו נראה איך אנחנו יכולים להשתמש איתן. מה שאנחנו הולכים לעשות זה פשוט to log את הנתיב שמוחזר מכל פונקציה כזאת.
אז בואו ניגש ל-log.i, ניתן כאן איזשהו tag כזה שיאפשר לנו לזהות אחר כך בקלות את הלוג, נקרא לזה test.fs כלומר File System, זה פשוט נקרא לכל אחת מהפונקציות שראינו ונראה מה מוחזר ממנה.
הפונקציה הראשונה שראינו נקראת get files dir אבל כאמור הפונקציות האלה לא מחזירות מחרוזת אם אנחנו מסתכלים על מה באמת חוזר מהם זה אובייקט פייל. אם אנחנו רוצים עכשיו להביא באמת את הנתיב אנחנו צריכים לקרוא ל-get absolute path וזה מחזיר את הנתיב מהתיקייה.
אז יש לנו קודם כל את הפונקציה get files dir ואנחנו יכולים לשכפל את זה ולקרוא לפונקציה הבאה ואז נריץ את הכל ביחד ונראה מה כל אחת מציגה לנו.
הפונקציה הבאה שראינו נקראת get external files dir ואנחנו יכולים לקרוא לה אם נ"ל לאחר מכן. יש לנו את get external files dir אבל במקום נ"ל אנחנו רוצים לתת איזשהו קבוע של תיקייה.
לדוגמה environment, נקודה דירקטורי מיוזיק בואו ניקח את המיוזיק שהיה לנו שם פונקציה נוספת שראינו הייתה environment.get external storage directory ואנחנו פשוט קוראים לה בצורה כזאת כפונקציה שלא מקבלת שום דבר ולאחר מכן ראינו פונקציה נוספת get external storage public דירקטורי אבל הפונקציה הזאת כן מקבלת את אחד הקבועים לדוגמה environment.directoryMusic
אז יש לנו בעצם מספר שיטות להביא תיקיות שונות כמובן כל תיקייה תגיע ממקום אחר במכשיר או בזיכרון חיצוני לדוגמה sd card בואו נריץ את האפליקציה בואו נלחץ על הלחצן ואנחנו יכולים לראות שכאן ב-LogCat כל המידע נכתב.
נעביר את זה ל-Information כי אנחנו השתמשנו עם log.i ונכניס כאן את ה-Tag test.fs ונראה רק את ההדפסות שלנו. אז הנה אנחנו רואים, בואו נשים את זה פה אחד ליד השני, והנה אנחנו רואים את ההדפסה הראשונה של get files adhere, אנחנו רואים שזה מוחזר כ-data user אבל בפועל זה לא יהיה user,
זה יהיה data, data. לאחר מכן יש את ה-com.practicue שזה ה-package שלנו, אנחנו יכולים לראות אותו כאן, אנחנו יכולים לראות אותו כאן, שזה ה-package שאנחנו תמיד משתמשים איתו.
לאחר מכן תיקיית files, ככה אנחנו רואים כל אחד מהם. יש לנו פה storage, שימו לב שאם הנתיב נמצא בתוך תיקייה שיש בה את ה-package name של האפליקציה, זה אומר שכאשר מסירים את האפליקציה, אז כל מה שקשור לפאקג' מוסר וגם הקבצים והתיקיות שבתוכם מוסרים.
אם הנתיב לא כולל את ה-package name אז זה external storage והוא יישאר גם אם נסיר את האפליקציה. כמובן הוא נגיש גם לאפליקציות אחרות. איך אנחנו יכולים לראות את זה פיזית בתוך המכשיר או בתוך האמולטור?
אז שיטה אחת מאוד פשוטה זה לפתוח את ה-DDMF שראינו בעבר. בואו נלחץ פה על האייקון הזה והנה אנחנו רואים את ה-DDMF נפתח לו והוא מזהה שיש לנו פה את האמולטור, בואו נתפוס אותו ונתחיל לחפש את הנתיבים האלה.
היה לנו כאן את data, ובתוך data יש לנו עוד פעם את data, ובתוך אנחנו יכולים לחפש את ה-package name שלנו, הנה הוא פה, ובתוכו אנחנו יכולים לראות את ה-files.
זאת אומרת שאם לדוגמה היינו ניגשים ל-get files dir, היינו מגיעים לנתיב הזה בדיוק כאן של הפיילס. אם היינו פותחים קובץ בתוך, אז הקובץ היה נפתח פה בתיקיית פיילס.
אם היינו פותחים תיקייה, היא הייתה נפתחת פה בתיקיית פיילס. איזה עוד נתיבים אנחנו יכולים לראות? לדוגמה, ראינו שיש לנו פה את Storage, Emulated, זירו, אנדרואיד, דאטה ואז פיילס או מיוזיק.