Android文件操作:全面解析工具类与示例代码

3 下载量 89 浏览量 更新于2024-09-01 收藏 75KB PDF 举报
"Android文件操作工具类详解" 在Android开发中,对文件进行操作是常见的需求,包括创建、删除、复制、重命名等。本篇文章主要介绍一个自定义的`FileUtil`工具类,该类提供了丰富的功能来处理Android设备上的文件和目录。以下是`FileUtil`工具类的主要功能: 1. **文件的新建与删除**:`FileUtil`提供了静态方法,如`createNewFile()`用于创建文件,以及`deleteFile()`用于删除指定的文件。 2. **文件复制**:`copyFile()`方法支持将一个文件复制到另一个位置。 3. **获取文件扩展名**:通过`getFileNameWithoutExtension()`方法,可以从完整的文件路径中提取出文件的扩展名。 4. **文件重命名**:`renameFile()`方法允许开发者更改文件的名字。 5. **获取文件信息**:`getFileInfo()`方法返回一个`File`对象的详细信息,包括名称、大小、路径等。 6. **计算文件大小**:`fileSize()`方法用于获取文件的大小(以字节为单位),而`formatFileSize()`则将字节转换为更易读的格式(如KB, MB, GB)。 7. **获取路径下文件列表**:`listFilesAtPath()`方法返回指定路径下的所有文件列表。 8. **获取目录下文件列表**:`listFilesInDirectory()`方法返回指定目录下的所有文件和子目录。 9. **目录操作**:`createNewDirectory()`用于创建新目录,`deleteDirectory()`用于删除目录。 10. **目录复制**:`copyDirectory()`方法可以将整个目录结构及其内容复制到其他位置。 11. **计算目录包含的文件数量**:`countFilesInDirectory()`方法返回目录中的文件数量。 12. **计算目录包含的文件大小**:`directorySize()`方法计算目录及其所有子目录中所有文件的总大小。 在`FileUtil`类中,还使用了一些辅助方法,例如`isExternalStorageWritable()`和`isExternalStorageReadable()`,用于检查外部存储是否可读写,确保在进行文件操作时不会遇到权限问题。此外,类中的一些方法,如`getMimeTypeFromFile()`,会根据文件的扩展名返回相应的MIME类型,这对于处理多媒体文件尤其有用。 这个工具类极大地简化了Android应用中的文件操作,开发者只需调用相应的方法,即可实现各种文件和目录管理功能,提高了代码的可读性和效率。在实际开发中,可以依据项目需求进行适当的修改和扩展,以满足特定场景的需要。
2011-05-15 上传
android文件架构详解 cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处。 红色标记的两个文件是debug模式下产生的 data : 存放用户安装的软件以及各种数据。 default.prop : 默认配置文件 dev : 设备节点文件的存放地 etc : 指向 /system/etc ,配置文件存放目录 init : 系统启动到文件系统的时候第一个运行的程序。 init.goldfish.rc : 初始化文件 init.rc : 初始化文件 proc : /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。 root : 为空 。 sbin: 只放了一个用於调试的adbd程序 sdcard: 是SD卡中的FAT32文件系统挂载的目录 sqlite_stmt_journals: 一个根目录下的tmpfs文件系统,用於存放临时文件数据。 sys : 用於挂载 sysfs文件系统。 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值 system :系统中的大部分东西都在这各目录下,很重要的一个目录文件 system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的rootfs。他在Android手机中存放在nandflash的 mtd3中,是一个yaffs2文件系统,在启动时被挂载在root的/system目录下,其中包含有: # ls -a -l /system drwxr-xr-x root 208 1970-01-01 08:00 xbin drwxr-xr-x root root 1970-01-01 08:00 modules drwxr-xr-x root root 2010-06-23 09:39 framework drwxr-xr-x root root 2010-06-23 09:39 fonts drwxr-xr-x root root 2010-06-23 09:39 etc -rw-r--r-- root root 2197 2010-06-23 09:39 build.prop drwxr-xr-x root root 2010-06-23 09:39 media drwxr-xr-x root shell 2010-06-23 09:39 bin drwxr-xr-x root root 2010-06-23 09:39 usr drwxr-xr-x root root 2010-06-23 09:39 app drwxr-xr-x root root 2010-06-23 09:39 lost+found drwxr-xr-x root root 2010-06-23 09:39 lib drwxr-xr-x root root 2010-06-23 09:39 sd -rw-r--r-- root root 1452010-06-23 09:39 init.rc # xbin :下放了很多系统管理工具,这些工具不是到toolbox的链接,每个都是可执行程序。如果你看到这些命令你会发现他们根本不常用,他们都是为系统管理员准备的,是一些系统管理和配置工具。这个文件夹的作用相当於标准Linux文件系统中的 /sbin。 modules:使用来存放内核模块(主要是fs和net)和模块配置文件的地方。 framework: 是JAVA平台的一些核心文件,属於JAVA平台系统框架文件。里面的文件都是.jar和.odex文件。 备注:什么是odex文件? odex是被优化过的JAVA程序文件,体积通常是.jar的4倍左右。执行效率比.jar高。 fonts :字体库文件的存放目录。 etc :这里存放了系统中几乎所有的配置文件,根目录下的/etc就链结於此。 build.prop :是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件。 media :里面主要是存放了系统的铃声的,分为 notifications(通知)、ui(界面)、alarms(警告)和ringtones(铃声),里面都是.ogg音频文件。 bin :是存放用户常用的工具程序的,其中大部分是到toolbox的链接(类似嵌入式Linux中的busybox)。toolbox应该是 google简化版的busybox。 usr :用户的配置文件,如键盘布局、共享、时区文件等等。您可以cat 来看看。 app :存放的是Android系统自带的JAVA应用程序。 lost+found :yaffs文件系统固有的,类似回收站的文件夹,只有是yaffs文件系统都会有。 lib :存放几乎所有的共享库(.so)文件。 sd :SD卡中的EXT2分区的挂载目录 init.rc :一个初始化脚本,用於将/system/modules和/system/xbin挂载为cramfs,避免系统被无意破坏