2017-01-07 4 views
1

私は、フロー上のスタックで見つかったコードの大部分を試しましたが、devlopmentのドキュメントを読んでいますが、まだAndroidのロリポップの内部ストレージにフォルダとファイルを作成できません。下位APIで試してみませんでしたが、私はさらにマニフェストでその内部の宣言宣言を試みました。私も私の状況では動作しませんしようとしたコードの 以下のサンプル:android lollipopのフォルダ内部ストレージを作成する方法

String path = Environment.getDataDirectory().getAbsolutePath().toString() + "/storage/emulated/0/appFolder"; 
      File mFolder = new File(path); 
      if (!mFolder.exists()) { 
       mFolder.mkdir(); 
      } 
      File Directory = new File("/sdcard/myappFolder/"); 
      Directory.mkdirs(); 
    i tried this also below: 



    File myDir = context.getFilesDir(); 
     // Documents Path 
     String documents = "documents/data"; 
     File documentsFolder = new File(myDir, documents); 
     documentsFolder.mkdirs(); 





String publicC = "documents/public/api.txt" ; 
     File publicFolder = new File(myDir, publicC); 
     publicFolder.mkdirs(); 
and then this as well: 
ContextWrapper contextWrapper = new ContextWrapper(
       getApplicationContext()); 
     File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE); 
     myInternalFile = new File(directory, filename); 

答えて

2

まず、私はあなたが次の用語は、Androidアプリの開発に関して何を意味するかについてもっと読むお勧めします。

背景としてそれと

は、あなたが何をしたか確認しましょう:

Environment.getDataDirectory().getAbsolutePath().toString() + "/storage/emulated/0/appFolder"; 

getDataDirectory()を使用しないでください。私はこのコードがどこを指しているのか分かりません。

File Directory = new File("/sdcard/myappFolder/"); 

リムーバブルストレージへの任意の読み取り/書き込みアクセス権はありません。リムーバブルストレージは、とにかくその場所に見つからないことがあります。

File myDir = context.getFilesDir(); 
// Documents Path 
String documents = "documents/data"; 
File documentsFolder = new File(myDir, documents); 

このコードは問題ありません。しかし、それは内部ストレージを指し、Androidデバイスでは内部ストレージを非常に容易に見ることはできません。開発者は、コードが影響を受けるすべてを見ることができないという考えに慣れておく必要があります。テストケースを作成して、ディレクトリが作成されたことを確認することもできます。

String publicC = "documents/public/api.txt" ; 
File publicFolder = new File(myDir, publicC); 

これはどこにもありません。基本パスを導出するには、常にいくつかの方法を使用します。

ContextWrapper contextWrapper = new ContextWrapper(
      getApplicationContext()); 
File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE); 
myInternalFile = new File(directory, filename); 

ContextWrapperは役に立たない。 filepathは、単純なディレクトリ名である必要があります。

File directory = getDir(directoryName, Context.MODE_PRIVATE); 
myInternalFile = new File(directory, filename); 

このコードは次のように簡略化することもできます。それも内部ストレージを指しているため、直接調べることはできません。もう一度、ディレクトリが期待どおりに作成されたことを確認するためのテストコードを作成します。

関連する問題