2011-11-14 4 views
13

Androidの内部メモリにフォルダを作成する方法はありますか?例:Androidは内部メモリにフォルダを作成します

- data 
-- com.test.app (application's main package) 
---databases (database files) 
---files (private files for application) 
---shared_prefs (shared preferences) 

---users (folder which I want to create) 

は私が例えば内部メモリにusersフォルダを作成することはできますか?

+0

([内部ストレージ上のアプリケーションパッケージのディレクトリを作成]の可能性のある重複http://stackoverflow.com/questions/7105919/creating-directory-in -application-package-on-internal-storage) –

+0

あなたは間違いなくメモリ内のフォルダを作ることができます –

答えて

34

私は、内部メモリ内のフォルダ/ファイルを作成するために、これを使用:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir; 
File fileWithinMyDir = new File(mydir, "myfile"); //Getting a file within the dir. 
FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file. 
+0

upvotesからの有益な答えと思われます..同じファイルの内容を読むためのコードこれで、ファイルは "mydir"ディレクトリの中にあります。それを読むにはどうすればいいですか?また、ディレクトリにさらにフォルダがある場合はどうしたらいいですか? "パス"は私が心配しているものです。 –

+1

@Gautam M.このチュートリアルが有効かどうかを確認します。ありがとう。 http://www.mysamplecode.com/2012/06/android-internal-external-storage.html – JibW

+0

yup良いチュートリアル... –

3

context.getDir( "MYDIR"、...)を、ディレクトリを作成するには

:これはyour.package/app_mydir/

あなたのファイルは、ユーザがアクセスすることがしたい場合は、これを行う、INSTEAD

簡単

File newdir= context.getDir("DirName", Context.MODE_PRIVATE); //Don't do 
if (!newdir.exists()) 
    newdir.mkdirs(); 
これを使うべきではありません
/** Retrieve or creates <b>path</b>structure inside in your /data/data/you.app.package/ 
* @param path "dir1/dir2/dir3" 
* @return 
*/ 
private File getChildrenFolder(String path) { 
      File dir = context.getFilesDir(); 
    List<String> dirs = new ArrayList<String>(Arrays.<String>asList(path.split("/"))); 
    for(int i = 0; i < dirs.size(); ++i) { 
     dir = new File(dir, dirs.get(i)); //Getting a file within the dir. 
     if(!dir.exists()) { 
      dir.mkdir(); 
     } 
    } 
    return dir; 
} 
6

を作成します電話のプライマリストレージメモリ(通常は内部メモリ)には、次のコードを使用する必要があります。 Environment.getExternalStorageDirectory(中ExternalStorage)は、必ずしもSDカードを意味しない、それは

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName"); 

if (!mediaStorageDir.exists()) { 
    if (!mediaStorageDir.mkdirs()) { 
     Log.d("App", "failed to create directory"); 
    } 
} 

Directoryは、このコードを使用して容易に電話ユーザに表示されます作成電話一次記憶メモリを返すことに注意してください。もう1つの方法(最初に述べた)は、ディレクトリ(/data/data/package.name/app_MyDirName)にディレクトリを作成するので、通常の電話ユーザーは簡単にアクセスできないため、ビデオ/写真などを保存するために使用しないでください。アクセス許可が必要になります

、AndroidManifest.xmlに設定

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

はい、そうです、getExternalStorageDirectory()は携帯電話のプライマリストレージを表します。 sdカードにフォルダを作成しますか? –

関連する問題