『壹』 手機文件選擇器在哪
手機文件選擇器在您的應用列表內會有個名為文件管理器的應用,點擊進去就可以看到自己的文件了。如果您的手機沒有自帶文件管理器的話,您可以前往各大應用市場下載MT管理器或者RE管理器,比手機自帶的文件管理器多出了不少內容,您都可以選擇。
手機文件管理:
手機文件管理器是最簡單、實用的安卓文件管理工具,能識別標識文本、音樂、視頻、PDF等基本文檔,通過安卓文件管理你可以對手機文件和文件夾進行基本的拷貝,粘帖,刪除,移動等操作。
『貳』 文件夾選擇器怎麼實現
Android中文件選擇器的實現
今天給大家分享下文件選擇器的作用 , 具體就是獲取用戶在在SD卡選中的文件/文件夾路徑 ,類似於C#中
OpenFileDialog控制項(對C#的一站式開發還是念念不忘)。功能實現起來比較簡單,主要是幫助大家節省開發時間。
網上流傳較廣的一個成品如下 <[Android實例] 文件選擇器>, 本文也是根據上面的成品修改而成,使其更易
理解,效率更高。 除此之外,主要特色有:
1、我們監聽了用戶按下Back鍵的事件,使其返回上一層目錄;
2、針對不同的文件類型(文件vs文件夾 , 目標文件vs其他文件)做了特殊處理。
知識點一、 File 類的使用
文件選擇器的主要功能是:瀏覽文件\文件夾、文件類型等;都是通過java File類來實現的。
關於File類的使用,請參考如下博客:
<<來自java文檔 File類>>
<<Java File類>>
知識點二、調用方法說明
使用了startActivityForResult()發起調用以及onActivityResult()方法接受回調後的信息。
其他的也沒什麼好說了,大家看看代碼注釋吧~~ so easy - - 。
FileChooserActivity.java 實現文件選擇的類 。
[java] view plainprint?
public class CopyOfFileChooserActivity extends Activity {
private String mSdcardRootPath ; //sdcard 根路徑
private String mLastFilePath ; //當前顯示的路徑
private ArrayList<FileInfo> mFileLists ;
private FileChooserAdapter mAdatper ;
//配置適配器
private void setGridViewAdapter(String filePath) {
updateFileItems(filePath);
mAdatper = new FileChooserAdapter(this , mFileLists);
mGridView.setAdapter(mAdatper);
}
//根據路徑更新數據,並且通知Adatper數據改變
private void updateFileItems(String filePath) {
mLastFilePath = filePath ;
mTvPath.setText(mLastFilePath);
if(mFileLists == null)
mFileLists = new ArrayList<FileInfo>() ;
if(!mFileLists.isEmpty())
mFileLists.clear() ;
File[] files = folderScan(filePath);
if(files == null)
return ;
for (int i = 0; i < files.length; i++) {
if(files[i].isHidden()) // 不顯示隱藏文件
continue ;
String fileAbsolutePath = files[i].getAbsolutePath() ;
String fileName = files[i].getName();
boolean isDirectory = false ;
if (files[i].isDirectory()){
isDirectory = true ;
}
FileInfo fileInfo = new FileInfo(fileAbsolutePath , fileName , isDirectory) ;
//添加至列表
mFileLists.add(fileInfo);
}
//When first enter , the object of mAdatper don't initialized
if(mAdatper != null)
mAdatper.notifyDataSetChanged(); //重新刷新
}
//獲得當前路徑的所有文件
private File[] folderScan(String path) {
File file = new File(path);
File[] files = file.listFiles();
return files;
}
private AdapterView.OnItemClickListener mItemClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long id) {
FileInfo fileInfo = (FileInfo)(((FileChooserAdapter)adapterView.getAdapter()).getItem(position));
if(fileInfo.isDirectory()) //點擊項為文件夾, 顯示該文件夾下所有文件
updateFileItems(fileInfo.getFilePath()) ;
else if(fileInfo.isPPTFile()){ //是ppt文件 , 則將該路徑通知給調用者
Intent intent = new Intent();
intent.putExtra(EXTRA_FILE_CHOOSER, fileInfo.getFilePath());
setResult(RESULT_OK , intent);
finish();
}
else { //其他文件.....
toast(getText(R.string.open_file_error_format));
}
}
};
public boolean onKeyDown(int keyCode , KeyEvent event){
if(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode()
== KeyEvent.KEYCODE_BACK){
backProcess();
return true ;
}
return super.onKeyDown(keyCode, event);
}
//返回上一層目錄的操作
public void backProcess(){
//判斷當前路徑是不是sdcard路徑 , 如果不是,則返回到上一層。
if (!mLastFilePath.equals(mSdcardRootPath)) {
File thisFile = new File(mLastFilePath);
String parentFilePath = thisFile.getParent();
updateFileItems(parentFilePath);
}
else { //是sdcard路徑 ,直接結束
setResult(RESULT_CANCELED);
finish();
}
}
}
界面依舊很醜陋,囧 ,大家可以根據需要在此基礎上添加功能 。