<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//判別SDCard是否存在
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
Environment.getExternalStorageState(): mounted
Environment.MEDIA_MOUNTED: mounted
//取得SD卡路徑
File SDCardpath = Environment.getExternalStorageDirectory();
ex: /mnt/sdcard
<<建立資料夾>>
File mSDCardFile = new File( SDCardpath + "/mSDCardData" );//判別該File是否存在 ● boolean java.io.File.exists();
if( !mSDCardFile.exists() )
{
//若該資料夾不存在, 則用mkdirs()建立 ● boolean java.io.File.mkdirs()
mSDCardFile.mkdirs();
}
<<建立檔案>>
File mSDCardDoc = new File( SDCardpath + "/mSDCardData.txt" );//判別該File是否存在
if( !mSDCardDoc.exists() )
{
try
{
//若該檔案不存在, 則用createNewFile()建立
//● boolean java.io.File.createNewFile() throws IOException
mSDCardDoc.createNewFile();
}
catch (IOException e)
{
e.printStackTrace();
}
}
--------------------或--------------------
try
{
FileWriter mFileWriter = new FileWriter( SDCardpath.getAbsolutePath() + "/mSDCardData.txt" );
}
catch (IOException e)
{
e.printStackTrace();
}
//取得路徑(File→String) ● String java.io.File.getAbsolutePath();
mSDCardFile.getAbsolutePath()
//取得上一層路徑(File→String) ● String java.io.File.getParent()
mSDCardFile.getParent();
//判別是否為目錄
boolean isDirectory = mSDCardFile.isDirectory();
//判別是否為檔案
boolean isFile = mSDCardFile.isFile();
//將old.txt重新命名為new.txt
String oldPath = "/mnt/sdcard/old.txt"; String newPath ="/mnt/sdcard/new.txt";
File oldFile = new File( oldPath );
oldPath.renameTo(new File(oldFile));
//刪除檔案
mSDCardFile.delete();
//判別是否可讀
boolean canRead = file.canRead();
//判別是否可寫
boolean canWrite = file.canWrite();
//檔案寫入內容
FileWriter vFile;try
{
vFile = new FileWriter( "/mnt/sdcard/new.txt" );
vFile.write("要寫一些內容");
vFile.close();
}
catch (IOException e)
{
e.printStackTrace();
}
//讀取檔案內容
try {
String file = "/mnt/sdcard/new.txt";
InputStream input = new BufferedInputStream(new FileInputStream(file));
int res = input.available();
byte [] byte = new byte[res];
input.read(byte);
//把類型設為UTF-8才能正常讀取中文字!
String text = EncodingUtils.getString(byte, "UTF-8");
}
catch (IOException e)
{
e.printStackTrace();
}
//判別是否為隱藏檔
boolean isHidden = file.isHidden();
//以File[]儲存指定路徑下所有項目的路徑
File[] files=new File(SDCardpath.getAbsolutePath()).listFiles();
//列出所有項目的路徑
for(int i=0 ; i<files.length ; i++){
files[i];
}
--------------------或--------------------
for( File f : files )
{
f.getPath();
}
//列出所有項目
for(int i=0 ; i<files.length ; i++){
files[i].getName();
}
--------------------或--------------------
for( File f : files )
{
//● String java.io.File.getName()
f.getName();
}
<<以關鍵字搜尋目標>>
//以result儲存搜尋結果String result="";
for( File f : files )
{
//● int java.lang.String.indexOf(String string)
if(f.getName().indexOf(keyword)>=0)//回傳在第幾個字找到keyword, 若都沒找到則回傳0
{
result+=f.getPath()+"\n";
}
}
補充:程式中可以java.io.File.separator來表示字串"/"
%%%%%%%%%%%%%%%%%延伸學習-實作%%%%%%%%%%%%%%%%%%%%%%%%%
簡易檔案夾(一)
http://bedingfield-tsots.blogspot.com/2012/03/blog-post.html
沒有留言:
張貼留言