`

apk安装时在SDCard创建文件夹和复制文件

阅读更多

一、效果:

安装apk到用户手机上时在用户的SDCard创建文件夹(其实就是建立你唯一的应用的目录咯),以及复制一些你不想编译而有用的文件到你的目录下!

 

二、关键点:

1、得到sdcard的路径:android.os.Environment.getExternalStorageDirectory().getAbsolutePath()一般都会得到路径“/mnt/sdcard"

2、将你需要复制到用户sdcard的文件放到android代码res/raw路径如”res/raw/flycatdeng.txt",放在raw中的文件不会被编译。通过getResources().openRawResource(R.raw.flycatdeng);方式来获得这个资源,返回InputStream输入流。

3、得到目录或文件 File file=new File(String path); 判断是否有这个文件或目录file.exists(),返回true则表示存在;

4、如果目录不存在则需要创建目录(文件夹),file.mkdirs();//这里非常需要注意,如果是只有一个文件夹的话可以用mkdir(),但是如果你要再文件夹中还要有文件夹的话则需要用到mkdirs()

5、输入输出文件流,可见以下代码

6、最最最关键的是一定要在AndroidManifest.xml文件中配置添加用户权限:

sdcard创建和删除的文件的权限:

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

sdcard文件写入内容的权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

三、源码:

public class MainActivity extends Activity {
	private String fileDirPath = android.os.Environment
			.getExternalStorageDirectory().getAbsolutePath()// 得到外部存储卡的数据库的路径名
			+ "/Mulu01/Mulu02/Mulu03";// 我要存储的目录
	private String fileName = "flycatdeng.txt";// 要存储的文件名

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		createFile();// 创建目录及文件
	}

	private void createFile() {
		String filePath = fileDirPath + "/" + fileName;// 文件路径
		try {
			File dir = new File(fileDirPath);// 目录路径
			if (!dir.exists()) {// 如果不存在,则创建路径名
				System.out.println("要存储的目录不存在");
				if (dir.mkdirs()) {// 创建该路径名,返回true则表示创建成功
					System.out.println("已经创建文件存储目录");
				} else {
					System.out.println("创建目录失败");
				}
			}
			// 目录存在,则将apk中raw中的需要的文档复制到该目录下
			File file = new File(filePath);
			if (!file.exists()) {// 文件不存在
				System.out.println("要打开的文件不存在");
				InputStream ins = getResources().openRawResource(
						R.raw.flycatdeng);// 通过raw得到数据资源
				System.out.println("开始读入");
				FileOutputStream fos = new FileOutputStream(file);
				System.out.println("开始写出");
				byte[] buffer = new byte[8192];
				int count = 0;// 循环写出
				while ((count = ins.read(buffer)) > 0) {
					fos.write(buffer, 0, count);
				}
				System.out.println("已经创建该文件");
				fos.close();// 关闭流
				ins.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 
1
5
分享到:
评论

相关推荐

    Android实现复制Assets文件到SD卡

    注意,由于安全和权限问题,从Android 6.0(API级别23)开始,应用需要在运行时请求`WRITE_EXTERNAL_STORAGE`权限。在AndroidManifest.xml中声明权限的同时,还需要在运行时使用`ActivityCompat.requestPermissions...

    Android文件管理器毕业设计论文.doc

    本文的研究目标是设计一个Android文件管理器,旨在提升用户在处理日常文件和管理本地存储文件时的效率。首先,文章介绍了Android智能手机操作系统的发展现状和未来趋势,强调了开发文件管理器的必要性和意义。通过对...

    安卓文件查看

    同时,可以创建文件夹并组织文件。对于大型文件,还可以通过蓝牙、Wi-Fi直连或云服务进行传输。 6. **版本更新**:`android-4.0.0`指的是Android Ice Cream Sandwich(冰淇淋三明治)版本,这是Android的一个重要...

    Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法

    由于从`Assets`复制文件到SD卡涉及到文件系统的读写操作,因此在AndroidManifest.xml中需要添加以下权限: ```xml ``` 此外,对于Android 6.0(API 23)及以上版本,还需要在运行时请求相应的权限。 这个过程...

    adb 文件 直接解压复制 即可用

    - 首先,解压缩"adb1.0.32-tools"文件到任意目录,例如创建一个名为"ADBTools"的新文件夹。 - 确保将解压后的四个文件(通常为adb.exe、fastboot.exe、AdbWinApi.dll和AdbWinUsbApi.dll)移动到说明文件指定的位置...

    Bluestacks模拟器root图文教程

    3. **复制root文件**:将指定的两个文件复制到对应的系统文件夹中,XP系统是`\Documents and Settings\All Users\Application Data\BlueStacks\Android`,Windows 7/8系统则是`C:\ProgramData\BlueStacks\Android`。...

    android手机的内核操作(命令)

    在虚拟机的SDCARD里面创建文件夹 - **mkdir 文件夹名称** - **命令**:`mkdir 文件夹名称` - **用途**:在当前目录下创建一个新文件夹。 - **示例**:创建名为music的文件夹,命令为:`mkdir music`。 #### 10...

    电脑端android2.2手机模拟器,打算入手安卓手机的不妨先来尝尝鲜吧参照.pdf

    本文档将详细介绍如何在电脑上安装并使用Android 2.2版本的手机模拟器,并提供实用的操作步骤和技术要点。 #### 二、准备工作 在正式安装和使用Android 2.2手机模拟器之前,需要完成一系列的基础设置工作,确保电脑...

    Android平台ROM的定制及精简介绍

    - 每次安装新的应用程序时,系统都会在 `/data/app/` 下创建一个对应的目录,并将 `.apk` 文件复制到该目录中。同时,如果在 `/system/app/` 中有同名的应用程序,则会自动覆盖。 - 当删除应用程序时,只会在 `/...

    adb shell命令

    使用 `adb push android123.txt /tmp/android123.txt` 命令可以把 SDK/Tools 下的 android123.txt 文件传输到模拟器的 `/tmp/` 文件夹中,需要注意的是 `/tmp/` 文件夹中内容会在 Android 模拟器重新启动时清空。...

    androidadbshell命令大全.pdf

    这两个命令分别用于从本地复制文件到设备以及从设备复制文件到本地。 25. **搜索模拟器 /设备的实例:** `adb devices` 该命令用于查找当前连接的所有设备实例,并显示其状态。 26. **查看 bug 报告:** `...

    Android学习心得.doc

    - 然后在启动模拟器时使用 `-sdcard &lt;FileName&gt;` 参数来指定SD卡文件,例如 `emulator -avd &lt;Name&gt; -sdcard &lt;FileName&gt;`。 ##### 7. 在模拟器上安装Android程序 - 通过Eclipse的DDMS视图中的 `File Explorer` 功能...

    CCVR首页定制功能说明1

    3. 将`CustomLauncher`文件夹及其所有子文件复制到设备的根目录,通常是`/sdcard/`。 4. 重启设备,个性化定制的首页就会生效。 接下来,我们探讨设计规范,这关乎到首页的视觉效果和用户体验。对于item的图片大小...

    ADB常用命令和路径

    ADB提供了一系列文件操作命令,包括查看文件内容、创建文件夹、赋予文件权限等。 - **命令**: `cat`, `mkdir`, `chmod`, `rm`, `cp`, `rmdir` - **用途**: - `cat`: 查看文件内容。 - `mkdir`: 创建新文件夹。 ...

    android adb命令参考

    在设备间复制文件 - 将文件从本地复制到设备 ``` adb push &lt;source&gt; ``` 例如:`adb push test.txt /tmp/test.txt` - 将文件从设备复制到本地 ``` adb pull &lt;source&gt; ``` 例如:`adb pull /addroid/lib/...

    Android模拟器简介—更新到最新的3.0Honeycomb[参照].pdf

    5. `adb push &lt;本地路径&gt; &lt;远程路径&gt;`:将本地文件或文件夹复制到设备。 6. `adb pull &lt;远程路径&gt; &lt;本地路径&gt;`:将设备上的文件或文件夹拉取到本地。 Android命令行工具主要用于管理SDK,例如创建、更新和查看AVD...

Global site tag (gtag.js) - Google Analytics