Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema testo stringa

  1. #1

    Problema testo stringa

    Ciao a tutti,
    Vi trascrivo il pezzo del codice in cui ho problemi:

    codice:
    String NameFile = file.toString();
    
    
    int index = NameFile.lastIndexOf("/");
    
    NameFile = NameFile.substring(index);
    
    //elimino il file selezionato dall'utente
    file.delete();
    
    
    //CREO L'OUTPUTSTREAM DEL NUOVO FILE
    FileOutputStream OUTSTRComparasionBarcode;
    //Salvo tutto nel file
    OUTSTRComparasionBarcode = openFileOutput(NameFile, Context.MODE_PRIVATE);
    OUTSTRComparasionBarcode.write(Read2.toString().getBytes());
    OUTSTRComparasionBarcode.flush();
    OUTSTRComparasionBarcode.close();

    Il mio problema è il seguente: Se prendo la stringa NameFile e cerco di vederla ad esempio con una textview ha un valore che può essere prova.txt. Però mettendola per creare il file il file non appare (Sembra sia vuota), se invece per creare il file metto il nome manualmente "prova.txt" me lo crea correttamente. Sapete aiutarmi'??

    Grazie mille
    Ultima modifica di LeleFT; 10-04-2017 a 18:14 Motivo: Sistemati i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da simone99699996 Visualizza il messaggio
    codice:
    String NameFile = file.toString();
    
    
    int index = NameFile.lastIndexOf("/");
    
    NameFile = NameFile.substring(index);
    Innanzitutto il modo corretto e "pulito" per prendere il solo nome del file (senza il path) è con getName() di File. Non perdere tempo con lastIndexOf, substring o altre menate.

    Oltretutto nel tuo codice c'è anche un'altra questione. Cerchi l'ultimo "/" e poi nel substring lo includi! Questo vuol dire che il nome del file inizia con "/" e quindi scrivere un file /qualcosa è nella "radice" del file system, dove presumibilmente non hai i permessi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto il modo corretto e "pulito" per prendere il solo nome del file (senza il path) è con getName() di File. Non perdere tempo con lastIndexOf, substring o altre menate.

    Oltretutto nel tuo codice c'è anche un'altra questione. Cerchi l'ultimo "/" e poi nel substring lo includi! Questo vuol dire che il nome del file inizia con "/" e quindi scrivere un file /qualcosa è nella "radice" del file system, dove presumibilmente non hai i permessi.
    Ammetto il metodo un pò barbaro ma non sono sto asso ancora ina android questa funzione l'ho usata in precendenza perchè dovevo salvarmi in una sharepreference il valore del testo...
    Ma quello che mi fa più strano è che se lo metto in una text view o lo scrivo da qualche parte il valore è giusto se cerco di creare il file non esce.... Tu hai idee? Grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da simone99699996 Visualizza il messaggio
    Ma quello che mi fa più strano è che se lo metto in una text view o lo scrivo da qualche parte il valore è giusto se cerco di creare il file non esce.... Tu hai idee? Grazie
    L'ho detto prima: se parti con il file "blabla/nome.xyz", tu estrai "/nome.xyz" e questo vuol dire un file alla "radice" del file-system, dove PRESUMIBILMENTE tu non hai i permessi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    L'ho detto prima: se parti con il file "blabla/nome.xyz", tu estrai "/nome.xyz" e questo vuol dire un file alla "radice" del file-system, dove PRESUMIBILMENTE tu non hai i permessi.
    Ho modificato come mi hai detto e funziona. Ma in parte ovvero
    if(file.getName().equals("comparasionbarcode.csv")

    Non mi funziona ancora come comparazione. Ripeto sono un novellino quindi ho ancora tanti dubbi e cose da capire
    Grazie ancora

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da simone99699996 Visualizza il messaggio
    Ripeto sono un novellino quindi ho ancora tanti dubbi e cose da capire
    In Android il file-system ha una struttura più particolare, con locazioni ben precise e permessi molto più rigidi e in sostanza vuol dire che NON puoi andare a scrivere file "dove ti pare".
    E tanto per dirne una, vuoi scrivere sullo storage interno o su quello esterno (scheda SD o quello che è)??

    Hai già letto: Saving Files | Android Developers ?
    Se no, dovresti leggerlo, altrimenti ti assicuro che non vai molto lontano ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Il problema non riguarda il salvataggio dei file. Il salvataggio di alcuni file lo faccio nella memoria interna (in modo di non essere visibile) mentre quelli in invio in quella esterna. Il mio problema ad ora riguarda la comparazione del nome di un file, già esistente, con una stringa data da me

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da simone99699996 Visualizza il messaggio
    Il mio problema ad ora riguarda la comparazione del nome di un file, già esistente, con una stringa data da me
    E quale è il dubbio/problema esattamente? Il if che hai indicato prima

    if(file.getName().equals("comparasionbarcode.csv") )

    è di per sé assolutamente corretto. Se chi ha scelto/generato quel java.io.File, ha il nome "comparasionbarcode.csv", allora la condizione del if è "vera".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    E quale è il dubbio/problema esattamente? Il if che hai indicato prima

    if(file.getName().equals("comparasionbarcode.csv") )

    è di per sé assolutamente corretto. Se chi ha scelto/generato quel java.io.File, ha il nome "comparasionbarcode.csv", allora la condizione del if è "vera".
    Il problema è che sebbene io crei un file con lo stesso identico nome non va nella condizione e quindi mi lascia eliminarlo

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da simone99699996 Visualizza il messaggio
    Il problema è che sebbene io crei un file con lo stesso identico nome non va nella condizione e quindi mi lascia eliminarlo
    Starai sbagliando qualcos'altro .... non saprei, senza vedere bene tutto. E comunque un test su un nome di file così specifico è un po' "dubbio".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.