And*_*rey 14 java directory installation android
我想有一个文件夹,我将把我需要的所有资源放在内部存储上.因为我希望只创建一次这个目录,所以我发现我应该在应用程序的主要活动中创建它:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File directory = context.getDir("mydir", Context.MODE_PRIVATE);
Log.d("directory", directory.getAbsolutePath().toString());
}
Run Code Online (Sandbox Code Playgroud)
这似乎没关系,因为这是我能在互联网上找到的,但是我收到了大量的错误,我可以到目录路径的日志,应用程序无法启动.知道为什么吗?
另外,如果我每次从Eclipse运行应用程序到手机时都使用内部存储器,它是否会自动删除前一个应用程序及其资源,或者我是手动执行此操作?
Bla*_*elt 17
用getCacheDir().它返回文件系统上特定于应用程序的缓存目录的绝对路径.然后,您可以创建目录
File myDir = new File(getCacheDir(), "folder");
myDir.mkdir();
Run Code Online (Sandbox Code Playgroud)
如果您想要存储在外部存储SD卡上,您需要拥有此功能
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml文件中
这也适用于存储:
File direct = new File(Environment.getExternalStorageDirectory()+"/folder");
if(!direct.exists()) {
if(direct.mkdir()); //directory is created;
}
Run Code Online (Sandbox Code Playgroud)
首先,请务必阅读并了解您的应用程序可用的不同存储选项.谷歌在这里有一篇非常好的文章:
http://developer.android.com/guide/topics/data/data-storage.html
Andy上面的答案提到了Environment.getExternalStorageDirectory()(API级别7)用于写入SD卡或类似卡,但是您应该记住,当用户卸载应用程序时,写入该位置的文件不会被删除.该文件说:
"应用程序不应直接使用此顶级目录,以避免污染用户的根命名空间"
相反,如果您将API级别8及更高版本作为目标,则应该使用Context.getExternalCacheDir()作为该位置中的文件,这将在卸载应用程序时被删除.如果您确实希望文件在卸载后仍然存在,则应使用Context.getExternalFilesDir().还有getCacheDir()和getFilesDir()用于处理内部存储上的文件.
正如您对问题的评论中所提到的,您真的应该在这里发布错误,以便我们能够帮助您.
PS我是新来回答有关SO的问题,所以我没有足够的代表发布我的答案中提到的所有功能的链接,我似乎无法评论以前的帖子.
| 归档时间: |
|
| 查看次数: |
33544 次 |
| 最近记录: |