Android Environment.getExternalStorageDirectory()和Environment.getExternalStorageDirectory().getAbsolutePath()之间的差异
两者之间有什么区别Android Environment.getExternalStorageDirectory()和Environment.getExternalStorageDirectory().getAbsolutePath()之间的差异,android,path,environment,Android,Path,Environment,两者之间有什么区别 Environment.getExternalStorageDirectory() 及 或 或 我知道什么是getAbsolutePath()、getCanonicalPath()和getPath() 我在一些示例环境中看到。getExternalStorageDirectory()的用法如下: getExternalStorageDirectory() + "/somefolder/anotherfolder/" 让我困惑的是默认情况下getExternalStora
Environment.getExternalStorageDirectory()
及
或
或
我知道什么是getAbsolutePath()、getCanonicalPath()和getPath()
我在一些示例环境中看到。getExternalStorageDirectory()的用法如下:
getExternalStorageDirectory() + "/somefolder/anotherfolder/"
让我困惑的是默认情况下getExternalStorageDirectory()本身指的是什么,以及为什么在某些情况下人们会使用额外的方法,而在没有任何额外内容的情况下只使用getExternalStorageDirectory()是可以的?根据文档,一个返回文件对象,而getAbsolutePath()是文件类方法 我知道什么是getAbsolutePath()、getCanonicalPath()和getPath() 那么你已经知道了你原来问题的答案(“两者之间有什么区别…”),因为唯一不同的是那些电话 默认情况下,getExternalStorageDirectory()本身指的是什么 它指的是外部存储的根。当用户通过USB电缆安装Android设备并获取驱动器号、卷或其他信息时,该驱动器指向
getExternalStorageDirectory()
指向的目录
一般来说,开发人员不应该使用getExternalStorageDirectory()
,而应该使用getExternalFilesDir()
和Context
上的kin,或者Environment
上的getExternalStoragePublicDirectory()
为什么在某些情况下人们会使用额外的方法
嗯,您必须以某种方式创建指向外部存储器上某个位置的文件对象。虽然最好使用适当的文件
构造函数,但有些懒惰的程序员使用字符串连接。为此,你需要一根绳子
什么时候可以只使用getExternalStorageDirectory()而不使用任何额外的内容
永远不要,或者接近它,仅仅因为它本身不是一个有用的价值。这类似于询问在Windows编程中何时使用C:
。这是一个驱动器号,很少是一个简单的驱动器号本身就足够了。我们需要一个目录或文件的路径,为此,我们需要将内容添加到C:
(至少,一个反斜杠)。当我通过USB电缆安装Android设备时,两个卷会出现名称“Phone”和“Card”。应用程序文件夹位于“手机”卷中。根据您的解释,“Phone”是我外部存储目录的根目录。我说得对吗?如果这是真的,外部存储目录在物理上不是指我手机的外部存储卡(可移动的),而内部存储目录在物理上始终是内部的(不可移动的)。我说得对吗?@Majidoureftekhari:“我说得对吗?”——对。这些卷的名称,以及是否有超过外部存储卷的名称,取决于制造商。“外部存储目录在物理上并不意味着我的手机的外部存储卡(可移动的)”--通常不在自2011年以来生产的设备上。
Environment.getExternalStorageDirectory().getCanonicalPath()
Environment.getExternalStorageDirectory().getPath()
getExternalStorageDirectory() + "/somefolder/anotherfolder/"