Autore Topic: Scrittura su SD Card - Strano problema  (Letto 971 volte)

Offline Federico

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: +2
    • Mostra profilo
Scrittura su SD Card - Strano problema
« il: 10 Febbraio 2011, 19:42:52 CET »
0
Salve di nuovo,

ho creato una app che scrive un file raw sulla sd card. Finché faccio girare il tutto sull'emulatore ci siamo. I problemi iniziano quando installo la app sul telefono, perché non mi scrive il file sulla sd card come voglio io e come dovrebbe. I permessi sono a posto e il telefono non ha problemi nel far scrivere applicazioni sulla SD Card. Vi posto comunque il codice:

Codice (Java): [Seleziona]
  private void scriviFile() {
       
                               
                      InputStream file = getBaseContext().getResources().openRawResource(R.raw.fileraw);
                 
                      File filedest = new File(Environment.getExternalStorageDirectory(), "/datiapplicazione/fileraw.doc");
                      FileOutputStream fileos = null;
                      try{
                         fileos = new FileOutputStream(filedest);
         
                         byte[] buffer=null;
                         buffer = new byte[698167];  //grandezza del file
                         file.read(buffer);
                         
                         fileos.write(buffer);
                         fileos.flush();
                     
                         fileos.close();
                       
                      } catch(FileNotFoundException e) {
                     
                      } catch (Exception e) {      
                   
                      }
                   
                      }

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Scrittura su SD Card - Strano problema
« Risposta #1 il: 10 Febbraio 2011, 19:52:08 CET »
0
La cartella dove cerchi di scrivere esiste?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Federico

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: +2
    • Mostra profilo
Re:Scrittura su SD Card - Strano problema
« Risposta #2 il: 10 Febbraio 2011, 21:57:30 CET »
0
No, non esiste... dipende da quello? Perché sull'emulatore me la crea in automatico...

Offline Federico

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: +2
    • Mostra profilo
Re:Scrittura su SD Card - Strano problema
« Risposta #3 il: 10 Febbraio 2011, 22:45:11 CET »
0
Comunque confermo che dovrebbe trattarsi di un problema di cartelle, visto che se provo a togliere la cartella e a mettere solo il nome del file, quest'ultimo viene scritto senza problemi anche sul telefono...

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Scrittura su SD Card - Strano problema
« Risposta #4 il: 11 Febbraio 2011, 09:39:11 CET »
0
mettigli un controllino di sicurezza e via ;)

Offline Federico

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: +2
    • Mostra profilo
Re:Scrittura su SD Card - Strano problema
« Risposta #5 il: 11 Febbraio 2011, 19:28:18 CET »
+2
Benissimo, ho risolto... posto di seguito il codice nel caso in cui possa essere utile a qualcun altro:

Codice (Java): [Seleziona]
private void scriviFile() {
       
                               
                      InputStream file = getBaseContext().getResources().openRawResource(R.raw.fileraw);
                      File directory = new File(Environment.getExternalStorageDirectory()+"/datiapplicazione/");
                 
                 if(!directory.exists() && !directory.isDirectory()) {
                 
                 directory.mkdirs();
                     
                 }
                 
                 else {
                       
                 }
                 
                      File filedest = new File(Environment.getExternalStorageDirectory(), "/datiapplicazione/fileraw.doc");
                      FileOutputStream fileos = null;
                      try{
                         fileos = new FileOutputStream(filedest);
         
                         byte[] buffer=null;
                         buffer = new byte[698167];  //grandezza del file
                         file.read(buffer);
                         
                         fileos.write(buffer);
                         fileos.flush();
                     
                         fileos.close();
                       
                      } catch(FileNotFoundException e) {
                     
                      } catch (Exception e) {      
                   
                      }
                   
                      }