>

내 응용 프로그램에서 표준으로 HTC 욕구에 저장된 이미지를 SD 카드의 다른 폴더에 복사하는 데 필요한 코드를 지원할 사람을 찾고 있습니다. 사용자가 버튼을 클릭하고 특정 파일이 SD 카드 갤러리 폴더에서 SD 카드의 다른 폴더로 복사되기를 원합니까? 감사합니다

  • 답변 # 1

    우즈 마니아 어

    다음과 같이 갤러리 선택기 의도를 시작할 수 있습니다.

       public void imageFromGallery() {
        Intent getImageFromGalleryIntent = 
          new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(getImageFromGalleryIntent, SELECT_IMAGE);
    }
    
    

    복귀하면 다음 코드 부분으로 선택한 이미지의 경로를 가져옵니다.

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch(requestCode) {
            case SELECT_IMAGE:
                mSelectedImagePath = getPath(data.getData());
                break;
        }
    }
    public String getPath(Uri uri) {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        startManagingCursor(cursor);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }
    
    

    이제 문자열에 경로 이름이 있으므로 다른 위치로 복사 할 수 있습니다.

    건배!

    편집 : 파일을 복사해야하는 경우 다음과 같이 시도하십시오 ...

    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();
        if (sd.canWrite()) {
            String sourceImagePath= "/path/to/source/file.jpg";
            String destinationImagePath= "/path/to/destination/file.jpg";
            File source= new File(data, sourceImagePath);
            File destination= new File(sd, destinationImagePath);
            if (source.exists()) {
                FileChannel src = new FileInputStream(source).getChannel();
                FileChannel dst = new FileOutputStream(destination).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {}
    
    

  • 답변 # 2

    갤러리 이미지는 이미 Android 폰의 SD 카드에 저장되어 있습니다. 공식 문서에는 외부 저장소 작업에 대한 유용한 섹션이 있으며, 여기서 확인해야합니다.

관련 자료

  • 이전 javascript - NVD3 꺾은 선형 차트 X 축 눈금이 없습니다
  • 다음 node.js - 매개 변수 whit 파일 업로드를 전달하고 노드 js Ionic 3에 가져 오는 방법