소프트웨어/Android

[android] onCreate에서 external storage에 폴더 만들기

개발자_이훈규 2016. 7. 25. 20:24

[android] onCreate에서 external storage에 폴더 만들기


(install 과정에서 뭔가 할 수 없다.)

(internal storage는 건들 수 없다.)

(external storage는 외부 저장장소라는 의미로 sd카드를 의미하기도 하고 내부 메모리 일부를 의미하기도 한다.)

가능하다고 한다. 찾아보자



1. install time에 internal storage에 folder만들기

(search : when+install+app%2C+create+folder+on+android)


install 과정에서 뭔가를 수행할 순 없고, 최초 실행시 사용되게 만들 순 있다.

create-directory-when-application-installed


2. 파일을 공유하기 위한 폴더 만들기

   1) internal storage에는 저장하면 공유가 안된다. external storage에 저장해야한다.

        (http://androidhuman.com/432)

   


3. internal storage에 저장하는 방법을 찾아보자.

android docs : filesInternal


mode가 private와 append밖에 없다. 즉 다른 앱과 공유하긴 힘들겠다.

(MODE_APPEND link)



4. external storage에 폴더를 만들면 된다.


source(onCreate) :

File nFile = new File(Environment.getExternalStorageDirectory(), "folder");

if (!nFile.exists) {

   nFile.mkdir();

}


AndroidManifest.xml :


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

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








+. 로그 출력하기

http://cluster1.cafe.daum.net/_c21_/bbs_search_read?grpid=1MWA2&fldid=aAfL&datanum=68


import android.util.Log;

...

private static final String TAG = "blabla";

...

Log.d(TAG, "hahaha");


+ folder path까지 전부 생성하기

mkdirs 함수를 사용하면 된다.



+ 다른 곳에 폴더 만들기


1) in app

String dirPath = getFilesDir().getAbsolutePath();

File nFile = new File(dirPath, "folder"); // internal cache folder


2) cache dir

File nFile = new File(getCacheDir(), "folder"); // internal cache folder