android中儲存路徑

2021-10-04 03:20:17 字數 2996 閱讀 7222

string dir = environment.getexternalstoragedirectory().getabsolutepath() + "/tencent/micromsg/weixin/" 

注意:environment.getexternalstoragedirectory()返回的路徑中最後乙個字元不是/,如果需要建立子目錄,需要在子目錄的前後都加上/。

獲取外部儲存許可權:

確定檔名:

1、隨機命名

這種命名規則是隨機生成乙個字串或一組數字來對命名。 

字串可以通過uuid來生成,數字可以通過random()類來生成,例如:

//通過uuid生成字串檔名

string filename1 =uuid.randomuuid().tostring();

//通過random()類生成陣列命名

random random=new random();

string filename2=string.valueof(random.nextint(integer.max_value));

2、時間命名 

calendar now=new gregoriancalendar();

******dateformat ******date=new******dateformat("yyyymmddhhmmss",locale.getdefault());

string filename=******date.format(now.gettime());

獲取儲存路徑:

a.獲取sd卡相關路徑的方法

1、environment.getexternalstoragedirectory().getabsolutepath()

// /storage/emulated/0

2、environment.getexternalstoragepublicdirectory(environment.directory_dcim).getabsolutepath())

// /storage/emulated/0/dcim

4.getexternalfilesdir(environment.directory_pictures).getabsolutepath:(getexternalfilesdir(environment.directory_dcim).getabsolutepath)

// /storage/emulated/0/android/data/packagename/files/pictures

//這個路徑是在上面講到cache目錄的同級目錄下建立乙個files目錄,並在其中闖將存放的pictures目錄。getexternalfilesdir方法中可以傳多種引數,例如還可以傳environment.directory_dcim這個引數一遍在files目錄下建立dcim這個目錄。

注意:3.4是會隨著應用的刪除而刪除

總結:獲取sd卡目錄的方法有兩套

一套是通過environment類獲取packagename無關的路徑(也就是上面的1/2)

一套是通過context類獲取packagename相關的路徑(也就是上面的3/4),packagename路徑下可以有cache和files兩個目錄

b.獲取記憶體卡相關路徑方法

和獲取sd卡路徑不同,獲取記憶體卡路徑不能通過environment類來獲取,只能通過context來獲取

1、getcachedir().getabsolutepath()

/data/user/0/packagename/cache

2、getfilesdir().getabsolutepath()

/data/user/0/com.yoryky.demo/files

一、讀寫sd card路徑中檔案

a、寫sd卡中的檔案方法

/*** 將內容寫入sd卡中

* @param filename 要寫入的檔名

* @param content  待寫入的內容

* @throws ioexception

*/public static void writeexternal(context context, string filename, string content) throws ioexception

}b、讀sd卡中的檔案方法

/*** 從sd card檔案中讀取資料

* @param filename 待讀取的sd card

* @return

* @throws ioexception

*/public static string readexternal(context context, string filename) throws ioexception

//關閉輸入流

inputstream.close();

}return sb.tostring();

}二、讀寫記憶體卡中的檔案

a、寫記憶體卡中檔案方法

/*** 寫internal card檔案

* @param context

* @param filename

* @param content

* @throws ioexception

*/public static void writeinternal(context context, string filename, string content) throws ioexception

b、讀記憶體卡中檔案方法

/*** 讀記憶體卡中檔案方法

* @param context  

* @param filename 檔名

* @return

* @throws ioexception

*/public static string readinternal(context context,string filename) throws ioexception

//關閉輸入流

inputstream.close();

return sb.tostring();

}

Android 外部儲存,內部儲存路徑

import android.content.context import android.os.environment import android.util.log public class directoryutils 獲取當前程式路徑 應用在記憶體上的目錄 data data com.exa...

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...

mysql中儲存過程

delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...