2016-11-18 8 views
-1

私は、特定のディレクトリ(.txtファイル)にファイルを作成し、そこにいくつかのデータを格納するプログラムを開発しようとしています(例えばStrings)。私はまた、ファイルにアクセスすることができます(私はファイルエクスプローラに私は作成したファイルを表示することができますし、多分別のプログラムや何かで編集することができます)にアクセスすることができます。Androidの特定のディレクトリに.txtファイルを作成する方法は?

私は多くのことを試しましたが、これを機能させることはできません。私も怒鳴る権限を追加しました

public void createFile(View view) throws IOException { 

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd"); 
    Date now = new Date(); 
    String fileName = formatter.format(now) + ".txt"; 
    String filepath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Sonda Drive Test"; 

    File mypath = new File(filepath); 
    if(!mypath.exists()) { 
     mypath.mkdir(); 
    } 
    //now the mkdir returns true isntead of false 


    File myfile = new File(mypath, fileName); 

    try{ 
     if(!myfile.exists()){ 
      txtDebug.setText("Não existe ficheiro!"); 
      myfile.createNewFile(); 
     } 
     else{ 
      txtDebug.setText("Já existe ficheiro!"); 
     } 
    }catch (Exception e){ 
     txtDebug.setText("Erro!"); 
    } 
} 

:ここ

は、私は、ATMを使用していたコードである

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

の問題は、私は

myfile.createNewFile(); 

を行うときアプリケーションは停止して終了します。しかし、私がその行にコメントすると、ファイルも作成されません。

私は間違っていますか?

編集:私はAPI 22のためにこの作業を行うように管理します。私はAPI 25のためにどのようにそれを行うことができますか?

+1

としてmypathで定義Crashes'あなたは、このことにより、正確に何を意味するのですか?あなたは例外/スタックトレースのために何を得るのですか? LogCatの詳細ログ出力をint [編集]してください。文脈の欠如のために閉会する投票。 –

+0

'mypath.mkdir();'ディレクトリの作成に失敗する可能性があるため、戻り値を確認してください。 falseを返した場合は、そのことを示すユーザにトーストを表示して戻ります。 – greenapps

+0

"myfile"が存在しないため、ファイルが存在するかどうかを確認する必要があるため、このクラッシュが発生する可能性があります。if(!myfile.exists()) –

答えて

0

`プログラムを使用すると、パスとしてmypathでを入れているが、あなたは、ファイル

+0

だから、どうすればmypathをパスとして定義できますか? –

+0

ブルーノはブルーノに耳を傾けません。 – greenapps

+0

@greenapps lol、ok –

関連する問題