2017-07-30 7 views
0

アンドロイドアプリを使用して内部ストレージにディレクトリ/ファイルを作成する方法を見つけることができないようです。私はその後、ESは、それがファイルを作成し、私はそれがにSystem.outのための「真」をプリントアウトするにもかかわらず、どこかのディレクトリ/ファイルが表示されていないかどうかを確認するためにファイルエクスプローラ使用Androidアプリ:内部ストレージにディレクトリを作成するにはどうすればいいですか

public class Environment extends SurfaceView implements SurfaceHolder.Callback { 
    public static String FILE_PATH; 
    //other unimportant variables 

    public Environment(Conext context) { 
     super(context); 
     FILE_PATH = context.getFilesDir() + "/My Dir/"; 
     File customDir = new File(FILE_PATH); 
     if(!customDir.exists()) 
      System.out.println("created my dir: " + customDir.mkdir()); 

     File test = new File(FILE_PATH + "testFile.txt"); 
     try { 
      if(!test.exists()) 
       System.out.println("created test: " + test.createNewFile()); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
     //other unimportant stuff 
    } 
} 

:私は、次のコードを持っています。 println()呼び出し。

私は間違っていますか?

+0

チェック:https://stackoverflow.com/a/40925801/6021469 –

答えて

1

ファイルを作成するパスは、アプリのプライベートな場所にあります。一般的に外部からアクセスすることはできません。実際にはアプリのデータフォルダに作成されています。しかし、あなたは外部フォルダに書きたいと思うようです。 外部ストレージに書き込むには、あなたがあなたのマニフェストファイルのWRITE_EXTERNAL_STORAGEの許可を要求する必要があります。

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

コード:ここで

String folder_main = "My Dir"; 

    File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
    if (!f.exists()) { 
     f.mkdirs(); 
    } 
    File test = new File(f , "testFile.txt"); 

あなたが外部ストレージ内のフォルダ/ファイルを作成する方法を見つけるだろう。

Save a File on External Storage

+0

まだディレクトリを見つけることができず、 "create my dir:false"というディレクトリを作成できなかったと表示されます。また、テストファイルを作成しようとすると "java.io.IOException:Permission Denied"が表示される – Ryan

+0

この回答の上部のコードは、あなたのアプリに権限が与えられているところに注目してください。 – ashubuntu

+0

@ashubuntuそうです、マニフェストに追加しましたが、まだ動作していません – Ryan

0

あなたは以下を試すことができます。

ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext()); 
File directory = contextWrapper.getDir(getFilesDir().getName(), Context.MODE_PRIVATE); 
File file = new File(directory,”fileName”); 
String data = “TEST DATA”; 
FileOutputStream fos = new FileOutputStream(“fileName”, true); // save 
fos.write(data.getBytes()); 
fos.close(); 

これは、このことができますデバイスの内部ストレージ(/data/user/0/com.yourapp/)内のファイル

希望を書きます!

関連する問題