一、效果:
安装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();
}
}
}
分享到:
相关推荐
注意,由于安全和权限问题,从Android 6.0(API级别23)开始,应用需要在运行时请求`WRITE_EXTERNAL_STORAGE`权限。在AndroidManifest.xml中声明权限的同时,还需要在运行时使用`ActivityCompat.requestPermissions...
本文的研究目标是设计一个Android文件管理器,旨在提升用户在处理日常文件和管理本地存储文件时的效率。首先,文章介绍了Android智能手机操作系统的发展现状和未来趋势,强调了开发文件管理器的必要性和意义。通过对...
同时,可以创建文件夹并组织文件。对于大型文件,还可以通过蓝牙、Wi-Fi直连或云服务进行传输。 6. **版本更新**:`android-4.0.0`指的是Android Ice Cream Sandwich(冰淇淋三明治)版本,这是Android的一个重要...
由于从`Assets`复制文件到SD卡涉及到文件系统的读写操作,因此在AndroidManifest.xml中需要添加以下权限: ```xml ``` 此外,对于Android 6.0(API 23)及以上版本,还需要在运行时请求相应的权限。 这个过程...
- 首先,解压缩"adb1.0.32-tools"文件到任意目录,例如创建一个名为"ADBTools"的新文件夹。 - 确保将解压后的四个文件(通常为adb.exe、fastboot.exe、AdbWinApi.dll和AdbWinUsbApi.dll)移动到说明文件指定的位置...
3. **复制root文件**:将指定的两个文件复制到对应的系统文件夹中,XP系统是`\Documents and Settings\All Users\Application Data\BlueStacks\Android`,Windows 7/8系统则是`C:\ProgramData\BlueStacks\Android`。...
在虚拟机的SDCARD里面创建文件夹 - **mkdir 文件夹名称** - **命令**:`mkdir 文件夹名称` - **用途**:在当前目录下创建一个新文件夹。 - **示例**:创建名为music的文件夹,命令为:`mkdir music`。 #### 10...
本文档将详细介绍如何在电脑上安装并使用Android 2.2版本的手机模拟器,并提供实用的操作步骤和技术要点。 #### 二、准备工作 在正式安装和使用Android 2.2手机模拟器之前,需要完成一系列的基础设置工作,确保电脑...
- 每次安装新的应用程序时,系统都会在 `/data/app/` 下创建一个对应的目录,并将 `.apk` 文件复制到该目录中。同时,如果在 `/system/app/` 中有同名的应用程序,则会自动覆盖。 - 当删除应用程序时,只会在 `/...
使用 `adb push android123.txt /tmp/android123.txt` 命令可以把 SDK/Tools 下的 android123.txt 文件传输到模拟器的 `/tmp/` 文件夹中,需要注意的是 `/tmp/` 文件夹中内容会在 Android 模拟器重新启动时清空。...
这两个命令分别用于从本地复制文件到设备以及从设备复制文件到本地。 25. **搜索模拟器 /设备的实例:** `adb devices` 该命令用于查找当前连接的所有设备实例,并显示其状态。 26. **查看 bug 报告:** `...
- 然后在启动模拟器时使用 `-sdcard <FileName>` 参数来指定SD卡文件,例如 `emulator -avd <Name> -sdcard <FileName>`。 ##### 7. 在模拟器上安装Android程序 - 通过Eclipse的DDMS视图中的 `File Explorer` 功能...
3. 将`CustomLauncher`文件夹及其所有子文件复制到设备的根目录,通常是`/sdcard/`。 4. 重启设备,个性化定制的首页就会生效。 接下来,我们探讨设计规范,这关乎到首页的视觉效果和用户体验。对于item的图片大小...
ADB提供了一系列文件操作命令,包括查看文件内容、创建文件夹、赋予文件权限等。 - **命令**: `cat`, `mkdir`, `chmod`, `rm`, `cp`, `rmdir` - **用途**: - `cat`: 查看文件内容。 - `mkdir`: 创建新文件夹。 ...
在设备间复制文件 - 将文件从本地复制到设备 ``` adb push <source> ``` 例如:`adb push test.txt /tmp/test.txt` - 将文件从设备复制到本地 ``` adb pull <source> ``` 例如:`adb pull /addroid/lib/...
5. `adb push <本地路径> <远程路径>`:将本地文件或文件夹复制到设备。 6. `adb pull <远程路径> <本地路径>`:将设备上的文件或文件夹拉取到本地。 Android命令行工具主要用于管理SDK,例如创建、更新和查看AVD...