
浏览器-》按menu键-》点击设置-》
清除缓存|清除历史记录|清除所有的co
okie
数据清除表单数据|清除密码
等
文件保存在sd卡内。具体路径在sd卡上,
你选择离线查看的时候就会知道具体在哪
个位置。
(网文)
Android41之后Android增加了多存储卡的支持,一般手机会存在内置存储卡和外置存储卡,也可能有多个外置存储卡。如何获取存储卡路径呢?
特别是各种android设备的存储器路径,是不一样的,比如T卡路径,可能是/mnt/sdcard、/mnt/extsd、/mnt/external_sd 或者/mnt/sdcard2。有时内置存储器的路径也可能是/mnt/sdcard,而host usb存储器的路径也是各种各样的。
下面方法是通过反射,调用StorageManager的隐藏接口getVolumePaths(),实现获取存储器列表。
[java]
package cklstoragelist;
import javalangreflectInvocationTargetException;
import javalangreflectMethod;
import androidappActivity;
import androidosstorageStorageManager;
public class StorageList {
private Activity mActivity;
private StorageManager mStorageManager;
private Method mMethodGetPaths;
public StorageList(Activity activity) {
mActivity = activity;
if (mActivity != null) {
mStorageManager = (StorageManager)mActivity
getSystemService(ActivitySTORAGE_SERVICE);
try {
mMethodGetPaths = mStorageManagergetClass()
getMethod("getVolumePaths");
} catch (NoSuchMethodException e) {
eprintStackTrace();
}
}
}
public String[] getVolumePaths() {
String[] paths = null;
try {
paths = (String[]) mMethodGetPathsinvoke(mStorageManager);
} catch (IllegalArgumentException e) {
eprintStackTrace();
} catch (IllegalAccessException e) {
eprintStackTrace();
} catch (InvocationTargetException e) {
eprintStackTrace();
}
return paths;
}
}
安卓开发离不开手机存储,然而大部分人对于安卓开发中的存储概念存在误区,内部外部SD卡傻傻分不清?
以下引用来自对 官方文档 的理解
呵呵呵,先别说话,然而重点来了(敲黑板),按照官方的说法,
内部存储是指系统的存储空间,没有root是访问不到的呦亲,比如sharedPreferenced或者database都是保存在这里面的。
外部存储,又分为 2 部分:
然而现实中,常常有同事把手机那个32G,64G存储叫做内部存储= =,宝宝好累,人家明明是 ExternalStorage !!
希望本篇能让大家对内外部存储有一个正确鲜明的认识
getFilesDir()
路径如下
文档 云:若想 *** 作该路径,你需要一个输出流:
就像这样:
注: this 是 context 对象
在
路径下会看到新文件哦
如果你还想读取的话, 文档 云:你需要一个输入流:
Log如下
getCacheDir()
文档 云:
路径如下:
特别的,还有getDir() :
getDir("- -!txt", ContextMODE_PRIVATE)getAbsolutePath()
路径如下:
app_是系统自己加上去的
内部存储就是系统的存储,没有root你是看不到的,内部存储最大特点就是可以用Context对象调用各个获取路径的方法。比如: contextfileList()
那就是
下的文件遍历。
而 deleteFile("ABC") 就是
删除下名为 ABC 的文件
</br></br></br>
*** 作外部存储你首先需要以下权限
当你申请了write权限,那么read权限默认也就通过啦
再判断状态:
if (EnvironmentMEDIA_MOUNTEDequals(EnvironmentgetExternalStorageState))
EnvironmentgetExternalStorageDirectory()
这个路径根据手机厂家不同会有些许变化
直接传入 Environment 中的常量获取相应的路径,如下:
EnvironmentgetExternalStoragePublicDirectory(EnvironmentDIRECTORY_ALARMS));
或者
EnvironmentgetExternalStoragePublicDirectory(EnvironmentDIRECTORY_PICTURES));
公有目录下,系统会区分不同类别 (例如铃声在系统设置中显示为铃声而不是音乐)
44以后访问该目录不再需要权限了
getExternalFilesDir(String type)
eg
getExternalFilesDir(EnvironmentDIRECTORY_MUSIC)
特别的:ContextCompat下的
ContextCompatgetExternalFilesDirs(context,type)
返回一个File[],在44以后第一条数据默认外部主存储目录,第二条数据就是sd卡路径啦,但是注意44之前是没有第二条数据的哦
该目录下的特点是卸载程序后,该目录和其下所有文件均会被删除
getExternalCacheDir()
注意,使用该目录注意管理空间,你不能等系统帮你清理,而是自己清理不再需要的缓存
特别的:ContextCompat下的
ContextCompatgetExternalCacheDirs()
道理同上
发现特点了吗朋友,无论外部内部,只有路径中有包名,那么就是私有的,而且是随着程序的卸载而被删除的, 有包名的路径均是Context中的方法,而公有的路径均是Environment调用的
这个货真真是要了老命,一般的方法根部不好使,结合网上有的方法加上公司项目中的方法,总结如下:
百分百好用的获取SD卡路径方法:
最后集合 path 中的值就是SD卡根目录
虽然无视版本百分百好用,但是如果你的手机有SD卡槽却没插SD卡,该方法最后 path 返回的是 null ,也就是说该方法无法判断到底是没插SD卡还是根本不支持SD卡
其实还有一种方法
String path = Systemgetenv("SECONDARY_STORAGE");
该方法只要你手机支持SD卡,无论你插没插SD卡,均会返回SD卡路径,但是 60及以上该方法被移除
Environment中源码其实就是根据这个方法获取路径的
安卓官方文档大家一定要看,他就是我们开发者的权威呀,圣经呀!!
如果你的手机插了SD卡的话,那么它打印的路径就有两条了,例如我的华为荣耀7插了SD卡,它的结果如下:
/storage/emulated/0/Android/data/packname/files/mounted
/storage/B3E4-1711/Android/data/packname/files/mounted
其中/storage/emulated/0目录就是机身存储的外部存储路径
而/storage/B3E4-1711/就是SD卡的路径
他们统称为外部存储
你问的编码?
原文:>
路径的话使用绝对路径就是了。 或者使用代码
EnvironmentgetExternalStorageDirectory()getAbsolutePath() 获得机子的 根目录 ,然后在后面加你的具体路径试试。
以上就是关于安卓版欧朋浏览器保存离线网页的储存路径在哪里全部的内容,包括:安卓版欧朋浏览器保存离线网页的储存路径在哪里、android 有多张sdcard,如何用代码获取到指定的sdcard、安卓内外部存储完全解析 -- 别再弄混了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)