2017-01-22 6 views
0

これは私がこれを実行すると私のコードですが、私のSDカードにファイルを保存したり生成したりしません。私は私がプログラミングでイムbegginerなどのミスのため申し訳ありませんミスをやってるところを知らないSqliteデータとアンドロイドのCSVファイル

List<ClientModel> list = new ArrayList<ClientModel>(); //My Model 
     DatabaseHelper db = new DatabaseHelper(getApplicationContext()); //My DBHelper Class 
     list = db.getAllClientList(); //My Method to get all data from database 

     File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // 

     if (!exportDir.exists()) 
     { 
      exportDir.mkdirs(); 
     } 

     File file = new File(exportDir, "Abc.csv"); //File Name 


     //writing data to a txt file 

     try { 

      file.createNewFile(); 
      CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file 
      for (int index = 0; index < list.size();) { 
       String arrStr[] = { String.valueOf(list.get(0))}; 
       csvWrite.writeNext(arrStr); 

      } 
      csvWrite.close(); 

      //But Above Code is not working for me 

     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
あなたは、API 23のランタイム permissionをチェックする必要が
+0

あなたはマニフェストに書き込み権限を与えていますか? –

+0

ええ、私はすでに を追加しましたか? – Cool

+0

どのようなエラーがありますか? 'catch'ブロックで受信しますか? – rafsanahmad007

答えて

1

:これを試して

if(isStoragePermissionGranted()){ 
     Save_file(); 
    } 

今すぐ追加あなたの活動の中のこのメソッド:

public void Save_file(){  
     File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // 

       if (!exportDir.exists()) 
       { 
        exportDir.mkdirs(); 
       } 
       File file = new File(exportDir, "Abc.csv"); //File Name 
       //writing data to a txt file 
       try { 

        file.createNewFile(); 
        CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file 
        for (int index = 0; index < list.size();) { 
         String arrStr[] = { String.valueOf(list.get(0))}; 
         csvWrite.writeNext(arrStr); 

        } 
        csvWrite.close(); 

        //But Above Code is not working for me 

       } catch (IOException e) { 

        e.printStackTrace(); 
       } 
      } 
     } 

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) 
       == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG,"Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG,"Permission is revoked"); 
      ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
      return false; 
     } 
    } 
    else { //permission is automatically granted on sdk<23 upon installation 
     Log.v(TAG,"Permission is granted"); 
     return true; 
    } 

} 

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ 
     Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); 
     //resume tasks needing this permission 
     Save_file(); 
    } 
} 
+0

あなたのコードはThx Manを試してみてください。毎回api 23のチェック許可を持っていない – Cool

+0

@Cool答えが助けられたら..よく刻印記号 – rafsanahmad007

+0

doneをクリックして正しいとマークしてください... – Cool

関連する問題