Android系统文件目录路径说明

数据存储路径,如下:其中应用程序包名为:com.spt

ContextWrapper类中,包含以下方法

  1. getFilesDir() --> 内部存储
@Override
public File getFilesDir() {
    return mBase.getFilesDir();
}

k86m_QC机器上数据存储路径:/data/data/com.spt/files

华为手机上数据存储路径:/data/data/com.spt/files


  1. getExternalFilesDir(String type) 参数指定为:Environment.DIRECTORY_PICTURES --> 外部存储
@Override
public File getExternalFilesDir(String type) {
    return mBase.getExternalFilesDir(type);
}

k86m_QC机器上数据存储路径:/storage/sdcard0/Android/data/com.spt/files/Pictures

华为手机上数据存储路径:/storage/emulated/0/Android/data/com.spt/files/Pictures


  1. getCacheDir() --> 内部存储
@Override
public File getCacheDir() {
    return mBase.getCacheDir();
}

k86m_QC机器上数据存储路径:/data/data/com.spt/cache

华为手机上数据存储路径:/data/data/com.spt/cache


  1. getExternalCacheDir() --> 外部存储
@Override
public File getExternalCacheDir() {
    return mBase.getExternalCacheDir();
}

k86m_QC机器上数据存储路径:/storage/sdcard0/Android/data/com.spt/cache

华为手机上数据存储路径:/storage/emulated/0/Android/data/com.spt/cache

Environment类中,包含以下方法:

  1. getDataDirctory()
/**
 * Return the user data directory.
 */
public static File getDataDirectory() {
    return DATA_DIRECTORY;
}

k86m_QC机器上数据存储路径:/data

华为手机上数据存储路径:/data


  1. getDownLoadCacheDirectory()
/**
 * Return the download/cache content directory.
 */
public static File getDownloadCacheDirectory() {
    return DOWNLOAD_CACHE_DIRECTORY;
}

k86m_QC机器上数据存储路径:/cache

华为手机上数据存储路径:/cache


  1. getExternalStorageDirectory()
/**
 * Return the primary external storage directory. This directory may not
 * currently be accessible if it has been mounted by the user on their
 * computer, has been removed from the device, or some other problem has
 * happened. You can determine its current state with
 * {@link #getExternalStorageState()}.
 * 

* Note: don't be confused by the word "external" here. This directory * can better be thought as media/shared storage. It is a filesystem that * can hold a relatively large amount of data and that is shared across all * applications (does not enforce permissions). Traditionally this is an SD * card, but it may also be implemented as built-in storage in a device that * is distinct from the protected internal storage and can be mounted as a * filesystem on a computer. *

* On devices with multiple users (as described by {@link UserManager}), * each user has their own isolated external storage. Applications only have * access to the external storage for the user they're running as. *

* In devices with multiple "external" storage directories, this directory * represents the "primary" external storage that the user will interact * with. Access to secondary storage is available through *

* Applications should not directly use this top-level directory, in order * to avoid polluting the user's root namespace. Any files that are private * to the application should be placed in a directory returned by * {@link android.content.Context#getExternalFilesDir * Context.getExternalFilesDir}, which the system will take care of deleting * if the application is uninstalled. Other shared files should be placed in * one of the directories returned by * {@link #getExternalStoragePublicDirectory}. *

* Writing to this path requires the * {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} permission, * and starting in read access requires the * {@link android.Manifest.permission#READ_EXTERNAL_STORAGE} permission, * which is automatically granted if you hold the write permission. *

* Starting in {@link android.os.Build.VERSION_CODES#KITKAT}, if your * application only needs to store internal data, consider using * {@link Context#getExternalFilesDir(String)} or * {@link Context#getExternalCacheDir()}, which require no permissions to * read or write. *

* This path may change between platform versions, so applications should * only persist relative paths. *

* Here is an example of typical code to monitor the state of external * storage: *

* {@sample * development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java * monitor_storage} * * @see #getExternalStorageState() * @see #isExternalStorageRemovable() */ public static File getExternalStorageDirectory() { throwIfUserRequired(); return sCurrentUser.getExternalDirsForApp()[0]; }

k86m_QC机器上数据存储路径:/storage/sdcard0

华为手机上数据存储路径:/storage/emulated/0


  1. getRootDirectory()
/**
 * Return root of the "system" partition holding the core Android OS.
 * Always present and mounted read-only.
 */
public static File getRootDirectory() {
    return DIR_ANDROID_ROOT;
}

k86m_QC机器上数据存储路径:/system

华为手机上数据存储路径:/system


  1. getExternalStoragePublicDirectory(String type)
/**
 * Get a top-level public external storage directory for placing files of
 * a particular type.  This is where the user will typically place and
 * manage their own files, so you should be careful about what you put here
 * to ensure you don't erase their files or get in the way of their own
 * organization.
 *
 * 

On devices with multiple users (as described by {@link UserManager}), * each user has their own isolated external storage. Applications only * have access to the external storage for the user they're running as.

* *

Here is an example of typical code to manipulate a picture on * the public external storage:

* * {@sample development/samples/ApiDemos/src/com/example/android/apis/content/ExternalStorage.java * public_picture} * * @param type The type of storage directory to return. Should be one of * {@link #DIRECTORY_MUSIC}, {@link #DIRECTORY_PODCASTS}, * {@link #DIRECTORY_RINGTONES}, {@link #DIRECTORY_ALARMS}, * {@link #DIRECTORY_NOTIFICATIONS}, {@link #DIRECTORY_PICTURES}, * {@link #DIRECTORY_MOVIES}, {@link #DIRECTORY_DOWNLOADS}, or * {@link #DIRECTORY_DCIM}. May not be null. * * @return Returns the File path for the directory. Note that this * directory may not yet exist, so you must make sure it exists before * using it such as with {@link File#mkdirs File.mkdirs()}. */
public static File getExternalStoragePublicDirectory(String type) { throwIfUserRequired(); return sCurrentUser.buildExternalStoragePublicDirs(type)[0]; }

k86m_QC机器上数据存储路径:/storage/sdcard0/Pictures

华为手机上数据存储路径:/storage/emulated/0/Pictures

Internal Storage和External Storage的区别:

Android系统文件目录路径说明_第1张图片

getFilesDir() --> 内部存储 /data/data/com.spt/files

getCacheDir() --> 内部存储 /data/data/com.spt/cache

内部存储,对应的是特定的应用程序,如上所述指的是包名为:com.spt应用程序

getExternalFilesDir(String type) --> 外部存储 /storage/sdcard0/Android/data/com.spt/files/Pictures

getExternalCacheDir() --> 外部存储 /storage/sdcard0/Android/data/com.spt/cache

getExternalStoragePublicDirectory(String type) --> 外部存储 /storage/sdcard0/Pictures

getExternalStorageDirectory() --> 外部存储 /storage/sdcard0

1 外部存储,对应的是/storage/sdcard0/目录;

2 private files:如果需要在卸载应用程序时,删除所有该应用程序的外部存储(同时,该数据是本应用程序私有的),可以使用:getExternalFilesDir(String type)目录,带有应用程序包名;

Android系统文件目录路径说明_第2张图片

3 public files可以存放在:getExternalStoragePublicDirectory(String type)

P.S.

对于特定的智能后视镜设备:Flash --> /mnt/sdcard 硬盘大小 外部存储路径:/storage/sdcard1" 外设的存储设备

你可能感兴趣的:(android基础知识)