2012-04-05 163 views
0

我正在尝试编写一个应用程序,将数据添加到SD卡上的现有电子表格。JXL和Android I/O权限被拒绝

我有一个问题,当我尝试创建一个可写的工作簿:

outputWorkbook = Workbook.createWorkbook(outputWorkbookFile,inputWorkbook);

我得到的logcat错误在Eclipse:

04-05 13:29:54.809: W/System.err(32653): java.io.FileNotFoundException: /mnt/sdcard/Dev/Spreadsheets/in.xls (Permission denied)

我可以读取输入文件并获取单元格的内容,我可以实例化一个可写入的工作簿或实例化一个输入工作簿,但不能同时存在。

private void doStuff() { 
    File directory = Environment.getExternalStorageDirectory(); 
    inputWorkbookFile = new File(directory + "/Dev/Spreadsheets/in.xls"); 
    outputWorkbookFile = new File(directory + "/Dev/Spreadsheets/out.xls"); 

    try { 

     // Put data into an array for easier iteration 
     double data[]; 
     data = new double[7]; 
     data[0] = income; 
     data[1] = diesel; 
     data[2] = carHire; 
     data[3] = radio; 
     data[5] = 0; 
     data[6] = itemCost; 

     inputWorkbook = Workbook.getWorkbook(inputWorkbookFile); 
     Log.e("Testing", "Opened workbook"); 

     if (isExternalStorageAvailable() && isExternalStorageReadable()) { 
      Log.e("Testing", "storage readable and available"); 
      outputWorkbook = Workbook.createWorkbook(outputWorkbookFile, 
        inputWorkbook); 
     } 

回答

0

您需要在您的AndroidManifest uses-permission标签声明许可android.permission.WRITE_EXTERNAL_STORAGE

+0

奇妙的工作。我昨天晚上想到了那个,但忘了试一下,我的头被那个点炸了。谢谢 – 2012-04-05 13:48:27