2017-02-10 4 views
0

私はdbファイルをcsvファイルに変換して、アンドロイドで完全に機能しました。しかし、私は手動でストレージの場所からcsvファイルを削除し、同じコードを実行しようとしました。私は同じ場所にファイルを書き込むことができません。例外はありません。次のように 使用されるコードは次のとおりです。アンドロイドのモバイルストレージに.csvを書き込むことができません

public void exportTopic() { 
     int rowCount, colCount; 
     int i, j; 
     Cursor c=null; 
     SQLHelper helperr=null; 
     try { 
      helperr=new SQLHelper(getActivity()); 
      c = helperr.getAllTopics(); 
      Log.d("exportPath", sdCardDir.getPath()); 
      String filename = "MyBackUp.csv"; 
      File CsvFile = new File(sdCardDir, filename); 
      FileWriter fw = new FileWriter(CsvFile); 
      BufferedWriter bw = new BufferedWriter(fw); 
      rowCount = c.getCount(); 
      colCount = c.getColumnCount(); 
      if (rowCount > 0) { 
       c.moveToFirst(); 
       for (i = 0; i < rowCount; i++) { 
        c.moveToPosition(i); 
        for (j = 0; j < colCount; j++) { 
         if (j != colCount - 1) 
          bw.write(c.getString(j) + ","); 
         else 
          bw.write(c.getString(j)); 
        } 
        bw.newLine(); 
       } 
       bw.flush(); 
      } 
     } catch (Exception ex) { 
      Log.d("Exception","at export topic"); 
      helperr.close(); 
      ex.printStackTrace(); 
     } 
     helperr.close(); 
     c.close(); 

    } 

私はここから関数を呼び出しています:それが存在しない場合は

private View.OnClickListener clickHandler = new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

      if (v.getId() == R.id.exportToDropBtn) { 
      try { 
       exportTopic(); 

      }catch (Exception e){ 
       Log.d("Exception","at export button"); 
       e.printStackTrace(); 
      } 
     } 
+0

まず: AsyncTaskへのあなたのメソッド "exportTopic()"を実行するのは、UIのスレッドへのSQL操作なので、それは良い方法ではありません。第二に、あなたはlogcatコンソールで何らかのエラーを受け取っていますか? –

+0

logcatコンソールでエラーが発生しませんでした。 – AndroidNwB

+0

別の場所でも同じコードが動作しています。 – AndroidNwB

答えて

0

は、ファイルを作成するためのコードを追加します。

File dir = new File(Environment.getExternalStorageDirectory() + "/yourAppName"); 
// make them in case they're not there 
dir.mkdirs(); 

File wbfile = new File(dir, fileName); 
try { 
     if (!wbfile.exists()) { 
      wbfile.createNewFile(); 
     } 

     // BufferedWriter for performance, true to set append to file flag 
     BufferedWriter buf = new BufferedWriter(
       new FileWriter(wbfile, true)); 
     buf.append(strBuilder.toString()); 
     buf.newLine(); 
     buf.close(); 
    } catch(Exception e){ 
    e.printStackTrace(); 
} 
+0

@AndroidNwB正しい答えとして受け入れることもできますし、アップアップすることもできます。 – nnn

関連する問題