導航:首頁 > 操作系統 > android打開指定文件路徑

android打開指定文件路徑

發布時間:2023-06-11 06:35:08

android 打開sd卡文件夾,並獲得選中文件的路徑怎麼實現

一個圖片上傳功能需要提供上傳圖片在SD卡中的路徑,總結了網上的一些列子,修改了一下,代碼很簡單,感興趣的朋友可以參考下哈,希望對大家有所幫助 最近在做一個圖片上傳的功能,需要提供上傳圖片在SD卡中的路徑,在網上看了些例子,改改調試成功,代碼很簡單。其布局文件如下: 復制代碼 代碼如下: <?xml version="1/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/select" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="請選擇SD卡中的圖片" /> </LinearLayout> java文件如下: 復制代碼 代碼如下: package com.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; public class QueryPictureUrlActivity extends Activity { private Button select; private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); select = (Button)findViewById(R.id.select); select.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data){ if (resultCode != RESULT_OK) { //此處的 RESULT_OK 是系統自定義得一個常量 // Log.e(TAG,"ActivityResult resultCode error"); return; } Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try { Uri originalUri = data.getData(); //獲得圖片的uri bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); //顯得到bitmap圖片 // 這里開始的第二部分,獲取圖片的路徑: String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(originalUri, proj, null, null, null); //按我個人理解 這個是獲得用戶選擇的圖片的索引值 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); //最後根據索引值獲取圖片路徑 String path = cursor.getString(column_index); Log.e("Lostinai",path); }catch (IOException e) { Log.e("Lostinai",e.toString()); } } } } 最後別忘記了加上許可權啊 復制代碼 代碼如下: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

⑵ android 如何使用Intent跳轉到文件管理器指定目錄。不要再復制

intent
intent
=
new
intent();
intent.setaction("action");//這個地方action換成你要跳轉到的文件管理器的action
intent.addcategory("category");//這個地方category換成你要跳轉到的文件管理器的category
startactivity(intent);
android跳轉到另一個應用都是一樣的,只是設置的action與category跟據跳轉的應用不同有所不同。

⑶ android開發 怎麼實現點擊按鈕打開文件瀏覽器並自動定位到指定文件夾

文件瀏覽器就是常見的文件管理app對吧?嘩枝態關鍵不在定位path,我認為(特別強亂源調,我認為),解決方案,
1,擁有文件管理app源碼,修改或者了解是否 支持其他應用的參照啟動方式,就是非launcher啟動時,是否搭讓能處理path或uri參數。
2,在你的app中附加,文件瀏覽(功能)。

⑷ android的項目里怎麼規定文件路徑的

方法一:把目標文件放入resources文件中,以通過讀取R的資源文件來獲取,具體方式如下:

1、在res下新建raw文件,將帶讀取文件添加到raw文件目錄下。

2、添加如下代碼:

// 如果要使用文件名獲取文件數據:首先獲取資源id然後再通過id獲取輸入流

InputStream im = getResources().openRawResource(R.raw.h_data11);

BufferedReader read = new BufferedReader(new InputStreamReader(im));

String line = "";

StringBuilder sb = new StringBuilder();

try {

while((line = read.readLine()) != null) {

sb.append(line).append("\n");

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if(read != null) {

try {

read.close();

read = null;

} catch (IOException e) {

e.printStackTrace();

}

}

if(im != null) {

try {

im.close();

im = null;

} catch (IOException e) {

e.printStackTrace();

}

}

}

Log.v("", "result = " + sb.toString());

方法二:使用assets 只讀文件進行讀取。

1、將文件到assets下,可以新建文件夾如:「www」然後將文件放入www文件夾中,讀取的path為:"www/filename"

String result = "";

ObjectInputStream ois = null;

AssetManager am = context.getResources().getAssets();

try {

ois = new ObjectInputStream(am.open("www/filename"));

result = (String) ois.readObject();

} catch (StreamCorruptedException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} finally {

try {

if (ois != null) {

ois.close();

ois = null;

}

} catch (IOException e) {

e.printStackTrace();

}

}

以對象的方式讀取文件中的數據,如果沒有新建文件夾,把前面的「www/」去掉就ok啦

以上方式我都還有疑問的地方:
1、raw下新建多級目錄是否真的不能夠使用。

⑸ android怎麼調用系統自帶的圖庫打開指定目錄的相冊

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//完成照相後回調用此方法
super.onActivityResult(requestCode, resultCode, data);
case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成點擊確定
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 檢測sd是否可用
Log.v("TestFile", "SD card is not avaiable/writeable right now.");
return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");// 獲取相機返回的數據,並轉換為Bitmap圖片格式
FileOutputStream b = null;
File file = new File("/sdcard/pk4fun/");
file.mkdirs();// 創建文件夾,名稱為pk4fun // 照片的命名,目標文件夾下,以當前時間數字串為名稱,即可確保每張照片名稱不相同。網上流傳的其他Demo這里的照片名稱都寫死了,則會發生無論拍照多少張,後一張總會把前一張照片覆蓋。細心的同學還可以設置這個字元串,比如加上「IMG」字樣等;然後就會發現sd卡中myimage這個文件夾下,會保存剛剛調用相機拍出來的照片,照片名稱不會重復。
String str = null;
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 獲取當前時間,進一步轉化為字元串
date = new Date(resultCode);
str = format.format(date);
String fileName = "/sdcard/myImage/" + str + ".jpg";
sendBroadcast(fileName);
try {
b = new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把數據寫入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
} break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
case 2:
switch (resultCode) {
case Activity.RESULT_OK: {
Uri uri = data.getData();
Cursor cursor = mActivity.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 圖片編號
String imgPath = cursor.getString(1); // 圖片文件路徑
String imgSize = cursor.getString(2); // 圖片大小
String imgName = cursor.getString(3); // 圖片文件名
cursor.close();
// Options options = new BitmapFactory.Options();
// options.inJustDecodeBounds = false;
// options.inSampleSize = 10;
// Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
}
break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
}

閱讀全文

與android打開指定文件路徑相關的資料

熱點內容
加密dns列表 瀏覽:988
股市操練大全八冊pdf 瀏覽:120
c傳遞指針到python 瀏覽:163
手動添加引導的命令 瀏覽:54
740伺服器小藍條是做什麼的 瀏覽:523
linux文件操作命令 瀏覽:127
安卓手機圖片文件夾加鎖 瀏覽:781
steam提示音在哪個文件夾 瀏覽:339
項目開發全程實錄pdf 瀏覽:532
單片機reset 瀏覽:597
pdf怎麼是英文 瀏覽:971
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:373
php去掉小數後面的0 瀏覽:955
阿里備案買什麼伺服器 瀏覽:263
網路驅動下載到哪個文件夾 瀏覽:483
達內程序員培訓西安 瀏覽:507
人保送車主惠app上怎麼年檢 瀏覽:605
android手機開機密碼 瀏覽:482