Android外部儲存空間通常比較大像是SD卡需要WRITE_EXTERNAL_STORAGE的權限和Internel其實很像只是位置不同只要記得private的是在/storage/SD卡名稱.
關閉廣告
給你魚竿
跳到主文
凡事起頭難,就給你難的
部落格全站分類:數位生活
相簿
部落格
留言
名片
公告版位
Feb22Mon201600:21
[Android]12-4Externalstorage
Android外部儲存空間通常比較大像是SD卡
需要WRITE_EXTERNAL_STORAGE的權限
和Internel其實很像只是位置不同
只要記得private的是在/storage/SD卡名稱/Android/dara/package名稱/files/指定的資料夾
而使用方是就和Javaioㄧ樣
1.先到官網http://developer.android.com/training/basics/data-storage/files.html
外部儲存空間的幾種狀況
a.有可能會被移除,像是拔掉SD卡
b.在不被你控制下被讀取,像是拔掉SD卡
然後再分析裡面的內容
c.當放在public的空間內,移除app並不會把資料刪掉
2.而其中又分成兩種
a.Publucfiles:可以被其他使用者或app看到,移除app時資料不會被移除
b.Privatefiles :不能被其他使用者或app看到,移除app時資料會被移除
3.首先要宣告權限
4.接著介紹幾種儲存位置
//private會一起被砍掉 Log.d("TAG","Path="+getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)); //public不會一起被砍掉 Log.d("TAG","Path="+Environment.getExternalStorageDirectory()); //public不會一起被砍掉 Log.d("TAG","Path="+Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
getExternalFilesDir是指向private的External空間
位置是/storage/SD卡名稱/Android/dara/package名稱/files/指定的資料夾
再來
Environment.getExternalStorageDirectory()是取得public的External空間的根目錄
位置是/storage/SD卡名稱
最後
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
是取得是取得public的External空間的預設資料夾的目錄
位置是/storage/SD卡名稱/指定的資料夾
5.模擬器的相對位置
/storage/emulated/0/Android/dara/package名稱/files/指定的資料夾
/storage/emulated/0/指定的資料夾
/storage/emulated/0/指定的資料夾
6.用法就跟一般javaio一樣
try{ Filefile=newFile(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS),"TEST.txt"); FileOutputStreamfileOutputStream=newFileOutputStream(file); fileOutputStream.write("TESTCONTENT".getBytes()); fileOutputStream.close(); }catch(java.io.IOExceptione){ e.printStackTrace(); }
7.以下是private的位置
8.以下是public的位置
9.最後如果寫入成功卻無法看到檔案
通常是因為資料夾並無即時更新
所以要強制它重新掃描一次
範例如下:
MediaScannerConnection.scanFile(this, newString[]{Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()} ,null,null);
文章標籤
AndroidExternalstorage
Androidstorage
全站熱搜
創作者介紹
RX1226
給你魚竿
RX1226發表在痞客邦留言(0)人氣()
全站分類:數位生活個人分類:12.Storage此分類上一篇:[Android]12-3CacheStorage
此分類下一篇:[Android]12-5確認當下Externalstorage狀態
上一篇:[Android]12-3CacheStorage
下一篇:[Android]12-5確認當下Externalstorage狀態
歷史上的今天
2016:[Android]Pluginistooold
2016:[Android]12-5確認當下Externalstorage狀態
▲top
留言列表
發表留言
GoogleAdSense
文章分類
Android(27)
1.環境設定(12)0.常見問題(22)2.基本(28)3.應用(26)4.NDK(4)5.UI(12)6.Material(0)7.GoogleMap(3)8.Parse(1)9.效能(15)10.Dialog(11)11.Activity(5)12.Storage(5)13.SourceCode(2)14.Menu(7)15.Toolbar(4)16.Intent(8)17.ProgressBar(3)18.Firebase(6)19.FB(6)20.ContentProvider(5)21.Thread(3)22.Fragment(3)23.Test(1)24.Loader(2)25.Notification(1)26.recyclerview(0)
Arduino(1)
1.環境設定(1)
Java(24)
0.常見問題(3)1.環境設定(2)2.基本(4)3.應用(9)4.基本資料型態(6)5.Operator運算子(8)6.條件與迴圈控制(7)7.Object物件(12)8.方法Method(5)9.陣列Array(7)10.String(10)11.Compilersugar(4)12.CodeStyle(7)13.Numbers(8)14.jsoup(7)15.JDBC(0)16.Package(3)17.修飾子Modifier(4)18.巢狀類別NestedClasses(4)19.介面Interface(5)20.例外處理(3)21.Collection(10)22.泛型Generics(3)23.Lambda(0)
C/C++(3)
1.環境設定(1)2.基本(1)3.應用(2)
JavaEE(2)
0.常見問題(2)1.環境安裝(8)
HTML(2)
1.基本(8)2.Tags(5)
CSS(2)
1.基本(1)2.應用(1)
JavaScript(3)
1.基本(4)2.應用(0)3.圖表Chart.js(1)
Bootstrap(1)
1.基本(1)
PHP(1)
1.環境設定(2)
AndroidStudio(2)
0.常見問題(1)1.基本(23)
Eclipse(2)
1.基本(9)2.應用(2)
SQLite(1)
1.環境設定(1)
OracleSQL(2)
0.常見問題(3)1.環境設定(4)
SourceTree(1)
1.基本(17)
Bitbucket(1)
1.基本(3)
GitHub(1)
1.基本(2)
CentOS(1)
2.應用(1)
GoogleCloudPlatform(1)
1.基本(5)
Parse(1)
1.基本(2)
Paypal(1)
1.基本(1)
TortoiseGit(1)
1.基本(1)
TortoiseSVN(1)
1.基本(3)
SynologyNAS(1)
1.基本(9)
Unreal4(2)
1.環境設定(1)2.基本(2)
Game(1)
CodeHunt(19)
GameMaker(1)
1.Tutorial(13)
Normal(1)
基本(3)
Blog(1)
PIXNET(1)
Blog生命史(1)
歷程(3)
網站推薦(1)
通用(13)
軟體推薦(1)
實用Free(6)
廣告賺錢(1)
廣告賺錢(7)
證照(2)
Google(2)經濟部(1)
電腦組裝(1)
選購(8)
最新文章
熱門文章
參觀人氣
本日人氣:
累積人氣:
POWEREDBY
(登入)
回到頁首
回到主文
免費註冊
客服中心
痞客邦首頁
©2003-2021PIXNET
關閉視窗