Android GetFileDir()和getFileAbsolutePath()之间的区别是什么
当我使用它们中的任何一个时,我都会得到相同的结果。只是为了使用Android GetFileDir()和getFileAbsolutePath()之间的区别是什么,android,Android,当我使用它们中的任何一个时,我都会得到相同的结果。只是为了使用getFileAbsolutePath,我使用了一个file对象 Log.v("getFilesDir", "" + getFilesDir().toString()); file = getFilesDir(); Log.v("file.getAbsolutePath",""+file.getAbsolutePath()); 结果: V/getFile
getFileAbsolutePath
,我使用了一个file对象
Log.v("getFilesDir", "" + getFilesDir().toString());
file = getFilesDir();
Log.v("file.getAbsolutePath",""+file.getAbsolutePath());
结果:
V/getFilesDir﹕ /data/data/com.kingbell.interprocesscommunication\u simple/files
V/file.getAbsolutePath﹕/data/data/com.kingbell.interprocesscommunication\u simple/files
正如android文档中所解释的那样 getFilesDir() 返回文件系统上存储使用openFileOutput(String,int)创建的文件的目录的绝对路径 这意味着它返回一个文件对象,一个文件可以表示文件或目录,在本例中是一个目录。您可以通过调用isDirectory()方法来检查它 getAbsolutePath() 返回此文件的绝对路径 这是该文件的路径,但请记住,目录是用与实际文件相同的文件对象表示的。您可以通过检查isDirectory()或isFile()方法来验证它 所以,在你的例子中,它们指向同一个地方 您调用了getFileDir(),因此您的上下文为您提供了一个在File类的实例中表示的目录。在该文件对象中,您调用getAbsolutePath(),因此它们表示相同的内容,因为这是一个实际的目录
清楚吗?也许源代码会更清楚 getAbsolutePath() 和getFilesDir() 对于特定的上下文(通常是活动),getFileDir()调用的返回值是固定的,并且应该始终相同,它告诉您可以用来保存文件的位置 同时,您可以对任何文件对象调用getAbsolutePath(),以获取完整的文件路径,可以是您创建的文件,也可以是发送给您的URI中包含的文件 这就是为什么这两个调用在不同的包中
希望解释有帮助 它们都是您的
文件的绝对路径
,一点区别都没有。我理解isDirectory()和isFile()方法的解释,但我仍然不理解getAbsolutePath()和getFileDirectory()之间的区别。您能举个例子解释一下吗???根据我的理解,GetFileDirectory()-返回使用OpenFileOutput()写入文件的目录的路径,getAbsolutePath()提供完整路径,对吗?您有什么疑问?它们都返回相同的路径,那么它们之间的区别是什么?GetFileDirectory()返回目录的路径,getAbsolutePath()返回目录的路径,因此我们不确定文件对象是否包含文件或目录,因此我们使用isDirectory或isFile进行检查。我说得对吗?是的。getFilesDir返回目录。。但是没有类来表示仅目录文件类。因此,类文件可以表示文件夹或文件。因此,一旦调用file=getFilesDir(),您将收到一个文件对象,它是指向/data/data/com.kingbell.interprocesscommunication\u simple/files.Got的目录表示形式。谢谢你抽出时间。
package java.io.file
public class File {
public String getAbsolutePath() {
return fs.resolve(this);
}
}
package android.content
public abstract class Context {
public abstract File getFilesDir();
}