程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 文件復制-android將選擇一張圖片復制到指定的目錄下

文件復制-android將選擇一張圖片復制到指定的目錄下

編輯:編程綜合問答
android將選擇一張圖片復制到指定的目錄下

先展出源代碼:
//打開圖庫
class B3 implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.setType("image/*");

intent.putExtra("crop", true);

intent.putExtra("return-data", true);

startActivityForResult(intent, 2);

}

}
//點擊圖片之後進行響應

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {

         if(requestCode == 2){
         Uri uri=data.getData();            //獲取圖片的path

         //ContentResolver cr = this.getContentResolver(); 
         //bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));  
         String[] proj = {MediaStore.Images.Media.DATA};

         //好像是android多媒體數據庫的封裝接口,具體的看Android文檔

         @SuppressWarnings("deprecation")
         Cursor cursor = managedQuery(uri, proj, null, null, null); 

         //按我個人理解 這個是獲得用戶選擇的圖片的索引值

         int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

         //將光標移至開頭 ,這個很重要,不小心很容易引起越界

         cursor.moveToFirst();

         //最後根據索引值獲取圖片路徑

         String path = cursor.getString(column_index);
         System.out.println(path);
         copyFile(path,newpath);
         Toast.makeText(getApplicationContext(), "文件復制成功", Toast.LENGTH_SHORT).show();
         }
     }
}
//進行復制的函數
public void copyFile(String oldPath, String newPath) {   
       try {   
           int bytesum = 0;   
           int byteread = 0;   
           File oldfile = new File(oldPath);   
           if (!oldfile.exists()) { //文件不存在時   
               InputStream inStream = new FileInputStream(oldPath); //讀入原文件   
               FileOutputStream fs = new FileOutputStream(newPath);   
               byte[] buffer = new byte[1024];   
               int length;   
               while ( (byteread = inStream.read(buffer)) != -1) {   
                   bytesum += byteread; //字節數 文件大小   
                   System.out.println(bytesum);   
                   fs.write(buffer, 0, byteread);   
               }   
               inStream.close();   
           }   
       }   
       catch (Exception e) {   
           System.out.println("復制單個文件操作出錯");   
           e.printStackTrace();   

       }   

   } 



    下面的是我的問題:
    手機上顯示文件復制成功,但是從文件管理器上發現並沒有復制成功,這個復制的函數是我從網上找的,網上說newpath這個字符串是這個樣子的newPath String 復制後路徑 如:f:/fqf.txt   但是我的程序的newpath是newpath="/mnt/sdcard/美好時光",請大神指點迷津!!!

最佳回答:


手機沒有f盤
路徑是 "/mnt/sdcard/美好時光"這種格式,mnt開頭

danielinbiti
w1213096890
danielinbiti
w1213096890
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved