android csdn博客大神u盘 目录 在哪儿 csdn

2803人阅读
Android 代码(18)
在项目移植过程中发现了一个离奇的问题,以前的项目是2.3的。后来移植到4.0上面发现sdcard不能创建目录权限全部都加了。
研究了一会发现目录出现多层是不能创建 例如:(/mnt/sdcard/test/hh) 只有一层目录是正常创建例如(/mnt/sdcard/test)
解决问题的方法:首先解析路径放入数组中然后遍历创建文件夹
private void makeRootDirectory(String filePath) {
&&& &File file =
&&& &String newPath=
&&String[] path=filePath.split(&/&);
&&for(int i=0;i&path.i++){
&&&if(newPath==null){
&&&&newPath=path[i];
&&&&newPath=newPath+&/&+path[i];
&&&file = new File(newPath);
&&&if (!file.exists()) {
&&&&&&&&&&&&&&& file.mkdir();
&&&&&&&&&&& }
记得加权限:
&uses-permission android:name=&android.permission.READ_PHONE_STATE&/&&&
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&/&&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场2709人阅读
android(3)
* 获取扩展存储路径,TF卡、U盘
public static String getExternalStorageDirectory(){
String dir = new String();
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(&mount&);
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if (line.contains(&secure&))
if (line.contains(&asec&))
if (line.contains(&fat&)) {
String columns[] = line.split(& &);
if (columns != null && columns.length & 1) {
dir = dir.concat(columns[1] + &\n&);
} else if (line.contains(&fuse&)) {
String columns[] = line.split(& &);
if (columns != null && columns.length & 1) {
dir = dir.concat(columns[1] + &\n&);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:19941次
排名:千里之外
原创:25篇
(2)(1)(1)(2)(1)(2)(1)(6)(10)(3)45041人阅读
新手入门(25)
Android(29)
技巧经验(17)
&原创文章,如有转载,请注明出处:
Android的每个应用程序,都有自己的可控的目录。
在Setting/Application info里面,可以看到每个应用程序,都有Clear data和Clear cache选项。
具体这些目录在哪里呢?
用adb连接上设备。如果是连接真实设备,需要有设备的root权限。
cd data/data
在这个目录下,可以看到每个应用程序都有自己的目录,目录名就是应用程序在AndroidManifest.xml文件中定义的包。
在每个目录下,一般有这么几个子目录:
databases : 存放数据库
cache : 存放缓存数据
files : 存放应用程序自己控制的文件
lib : 存放使用的包
每个应用程序的代码,对自己的目录是有绝对的控制权限的。
这几个目录可以在Activity中这么取得:
&&&&&&& Context cont = this.getApplicationContext();
&&&&&&& Log.d(&TemppjActivity&, &cont.getCacheDir() = & + cont.getCacheDir());
&&&&&&& Log.d(&TemppjActivity&, &cont.getDatabasePath(&temp&) = & + cont.getDatabasePath(&temp&));
&&&&&&& Log.d(&TemppjActivity&, &cont.getFilesDir() = & + cont.getFilesDir());
其中数据库路径是需要传入数据库名称的,返回值如下:
08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getCacheDir() =
/data/data/com.study/cache
08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getDatabasePath(&temp&) =/data/data/com.study/databases/temp
08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getFilesDir() = /data/data/com.study/files
另外,可以取得自身的apk的路径。
&&&&&&& Log.d(&TemppjActivity&, &cont.getPackageCodePath() = & + cont.getPackageCodePath());
&&&&&&& Log.d(&TemppjActivity&, &cont.getPackageResourcePath() = & + cont.getPackageResourcePath());
<span style="color:#-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageCodePath() = /data/app/com.study-1.apk
08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageResourcePath() = /data/app/com.study-1.apk
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:540013次
积分:3992
积分:3992
排名:第4633名
原创:39篇
评论:410条
(1)(1)(5)(3)(19)(17)1068人阅读
移动操作系统之Android(102)
======================================================================================================================================
1.build/tools/releasetools/
2.make otapackage
3.生成目录out/targect/product/generic/obj/PACKAGING/target_files_intermediates/
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:383170次
积分:6476
积分:6476
排名:第2095名
原创:287篇
转载:41篇
(3)(2)(4)(13)(2)(6)(19)(3)(2)(3)(11)(6)(1)(5)(20)(4)(4)(4)(10)(4)(9)(12)(5)(6)(10)(13)(9)(11)(6)(6)(4)(26)(7)(7)(7)(20)(16)(23)(3)(3)

我要回帖

更多关于 android csdn 的文章

 

随机推荐