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();
}
}
まず: AsyncTaskへのあなたのメソッド "exportTopic()"を実行するのは、UIのスレッドへのSQL操作なので、それは良い方法ではありません。第二に、あなたはlogcatコンソールで何らかのエラーを受け取っていますか? –
logcatコンソールでエラーが発生しませんでした。 – AndroidNwB
別の場所でも同じコードが動作しています。 – AndroidNwB