首先我要说的是,你的三星手机,和小米手机,不能写为//sdcard//这个系统重新封装了,不能用简写。String mPath = EnvironmentgetExternalStorageDirectory()toString();获得路径字符串。至于其他参数的,都是辅助
/
获取手机自身内存路径
/
public static String getPhoneCardPath(){
return EnvironmentgetDataDirectory()getPath();
}
/
获取sd卡路径
双sd卡时,根据”设置“里面的数据存储位置选择,获得的是内置sd卡或外置sd卡
@return
/
public static String getNormalSDCardPath(){
return EnvironmentgetExternalStorageDirectory()getPath();
}
/
获取sd卡路径
双sd卡时,获得的是外置sd卡
@return
/
public static String getSDCardPath() {
String cmd = "cat /proc/mounts";
Runtime run = RuntimegetRuntime();// 返回与当前 Java 应用程序相关的运行时对象
BufferedInputStream in=null;
BufferedReader inBr=null;
try {
Process p = runexec(cmd);// 启动另一个进程来执行命令
in = new BufferedInputStream(pgetInputStream());
inBr = new BufferedReader(new InputStreamReader(in));
String lineStr;
while ((lineStr = inBrreadLine()) != null) {
// 获得命令执行后在控制台的输出信息
Logi("CommonUtil:getSDCardPath", lineStr);
if (lineStrcontains("sdcard")
&& lineStrcontains("android_secure")) {
String[] strArray = lineStrsplit(" ");
if (strArray != null && strArraylength >= 5) {
String result = strArray[1]replace("/android_secure",
"");
return result;
}
}
// 检查命令是否执行失败。
if (pwaitFor() != 0 && pexitValue() == 1) {
// pexitValue()==0表示正常结束,1:非正常结束
Loge("CommonUtil:getSDCardPath", "命令执行失败!");
}
}
} catch (Exception e) {
Loge("CommonUtil:getSDCardPath", etoString());
//return EnvironmentgetExternalStorageDirectory()getPath();
}finally{
try {
if(in!=null){
inclose();
}
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
try {
if(inBr!=null){
inBrclose();
}
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
return EnvironmentgetExternalStorageDirectory()getPath();
}
//查看所有的sd路径
public String getSDCardPathEx(){
String mount = new String();
try {
Runtime runtime = RuntimegetRuntime();
Process proc = runtimeexec("mount");
InputStream is = procgetInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
BufferedReader br = new BufferedReader(isr);
while ((line = brreadLine()) != null) {
if (linecontains("secure")) continue;
if (linecontains("asec")) continue;
if (linecontains("fat")) {
String columns[] = linesplit(" ");
if (columns != null && columnslength > 1) {
mount = mountconcat("" + columns[1] + "\n");
}
} else if (linecontains("fuse")) {
String columns[] = linesplit(" ");
if (columns != null && columnslength > 1) {
mount = mountconcat(columns[1] + "\n");
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return mount;
}
//获取当前路径,可用空间
public static long getAvailableSize(String path){
try{
File base = new File(path);
StatFs stat = new StatFs(basegetPath());
long nAvailableCount = statgetBlockSize() ((long) statgetAvailableBlocks());
return nAvailableCount;
}catch(Exception e){
eprintStackTrace();
}
return 0;
}
一、在Android应用中的XML文件来源
1、本地xml文件
本地XML文件可以放在应用根目录assets文件夹、res/xml、res/raw、SDcard卡、应用的data目录等;
除res/xml可直接通过getXml(int id)获取XML文档,返回一个解析器对象(XmlResourceParer:XmlResourceParer是XmlPullParser的子类),其它位置情况都可以获取XML文档,返回一个Inputstream对象,进行读取数据,获取方法分别如下:
a在res/xml目录下(推荐使用):
[java] view plaincopy
XmlResourceParser xmlParser = thisgetResources()getXml(RxmlXXX);
b在res/xml、res/raw目录下:
[java] view plaincopy
InputStream inputStream = thisgetResources()openRawResource(RxmlXXX);
c在assets文件夹下(本人测试发现通过此方法获取的XML文档不能带有首行:<xml version="10" encoding="utf-8">,否则解析报错,具体原因未查明,知道原因请回复交流):
[java] view plaincopy
InputStream inputStream = getResources()getAssets()open(fileName);
d在应用指定目录下(SDcard,应用data目录等):
[java] view plaincopy
// path路径根据实际项目修改,此次获取SDcard根目录
String path = EnvironmentgetExternalStorageDirectory()toString();
File xmlFlie = new File(path+fileName);
InputStream inputStream = new FileInputStream(xmlFlie);
2、通过url得到的xml文件
很多时候需要解析xml文件都用于客户端与服务器之间的数据交互,比如解析google天气预报信息,或自己项目内定的一些XML数据结构,其中通过URL,使用Default>
Android SDK提供了大量的接口获取存储器路径,而存储器分为 内置存储器 和 外置存储器 ,下面分类列表获取路径的接口。
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
简单分析:
以下是我整理的工具类
1、鼠标右击文件,在d出的菜单选择“File Path”;
2、在d出的小窗口从下往上读就是当前文件的电脑路径,单击最上面的文件就可以打开文件所在位置;
文件在电脑的路径是:D:\MyApplication\appTest\src\main\java\com\example\mytest
这个还要看你是什么文件,举个例子获取文件。
Bitmap bitmap = BitmapFactorydecodeFile(androidosEnvironmentgetExternalStorageDirectory()getAbsolutePath()+ "/data/abc/def/ghijkl")
以上就是关于如何获得在Android的内部和外部SD卡路径全部的内容,包括:如何获得在Android的内部和外部SD卡路径、如何正确获得Android内外SD卡路径、新手使用android的XML(DOM)解析问题,指定路径XML如何读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)