if ( Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    		String path = Environment.getExternalStorageDirectory()+"/android/data/pe.berabue.maptools/.image";
    		File file = new File(path);

    		if( !file.exists() ) {// 원하는 경로에 폴더가 있는지 확인
    			file.mkdirs();

    			for ( int i = 0; i < 27; i++ ) {
    				byte [] buffer = new byte[8*1024];
    				int length = 0;
    				InputStream is = this.getResources().openRawResource(R.drawable.map1+i);  
    				BufferedInputStream bis = new BufferedInputStream(is);    

    				try {
    					FileOutputStream fos = new FileOutputStream(path+"/map"+(i+1)+".png");
    					while ((length = bis.read(buffer)) >= 0)
    						fos.write(buffer, 0, length);
    					fos.flush();  
    					fos.close();
    				} catch (Exception e) {} 
    			}
    		}
    	}

프로젝트 drawable 폴더안에 있는 png파일을 sdCard로 옮기는 방법.

먼저 sdCard가 연결이 되어 있는지 확인을 한다.
그리고 파일을 옮겨놓을 경로를 path에 입력을 시킨다.
원하는 경로의 폴더가 있는지 확인 후 없으면 새로 만들어준다.

for문이 28번 돌아가는 이유는 테스트할때 이미지가 28개였기때문에..

조금 변형시키면 raw폴더안 파일이나 다른 파일들도 충분히 이동 가능할듯!



'Android > File' 카테고리의 다른 글

ZipEntry를 활용한 압축해제  (0) 2013.06.02
단말기 내부에 폴더 및 txt파일 생성하기  (0) 2011.03.02
Sd Card 이미지 읽어오기  (0) 2011.02.14
txt 파일 읽어오기  (0) 2011.02.11
SD Card에 txt 파일로 저장하기  (0) 2011.02.05

먼저 SD Card에 사용을 위해 퍼미션을 줘야한다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>


import java.io.*;
import android.app.*;
import android.os.*;
import android.widget.*;

public class SDTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        String str = Environment.getExternalStorageState();
        if str.equals(Environment.MEDIA_MOUNTED)) {
        
          String dirPath = "/sdcard/android/data/pe.berabue.sdtest/temp"
          File file = new File(dirPath)
          if!file.exists() )  // 원하는 경로에 폴더가 있는지 확인
            file.mkdirs();
        }
        else
          Toast.makeText(SDTest.this, "SD Card 인식 실패", Toast.LENGTH_SHORT).show();
    }
}



file.mkdirs()와 file.mkdir()의 차이점

mkdirs()는 원하는 경로의 상위 폴더가 없으면 상위 폴더까지 생성.
ex ) sdcard/android/data/aaa/bbb
bbb 폴더를 만드려는데 aaa폴더가 없다면 aaa 폴더까지 생성 한다.

mkdir()은 지정 폴더만 생성.



구글에서 권장하는 폴더명은

android/data/패키지명/폴더명 


+ Recent posts