生活随笔
收集整理的這篇文章主要介紹了
APK安装时如何拷贝apk里的文件到sdcard
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、效果:
安裝apk到用戶手機上時在用戶的SDCard創(chuàng)建文件夾(其實就是建立你唯一的應用的目錄咯),以及復制一些你不想編譯而有用的文件到你的目錄下!
?
二、關鍵點:
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、如果目錄不存在則需要創(chuàng)建目錄(文件夾),file.mkdirs();//這里非常需要注意,如果是只有一個文件夾的話可以用mkdir(),但是如果你要再文件夾中還要有文件夾的話則需要用到mkdirs()
5、輸入輸出文件流,可見以下代碼
6、最最最關鍵的是一定要在AndroidManifest.xml文件中配置添加用戶權限:
sdcard創(chuàng)建和刪除的文件的權限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
sdcard文件寫入內容的權限:
? ? <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
?
三、源碼:
Java代碼 ?
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())?{??????????????????????System.out.println("已經創(chuàng)建文件存儲目錄");??????????????????}?else?{??????????????????????System.out.println("創(chuàng)建目錄失敗");??????????????????}??????????????}????????????????????????????File?file?=?new?File(filePath);??????????????if?(!file.exists())?{??????????????????System.out.println("要打開的文件不存在");??????????????????InputStream?ins?=?getResources().openRawResource(??????????????????????????R.raw.flycatdeng);??????????????????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("已經創(chuàng)建該文件");??????????????????fos.close();??????????????????ins.close();??????????????}??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}??????}??}??
總結
以上是生活随笔為你收集整理的APK安装时如何拷贝apk里的文件到sdcard的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。