Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74

    [JAVA] trovare estensione

    Salve.
    Mi servirebbe un'applicazione che passandogli dei file capisca quali sono quelli con un'estensione valida e quali senza estensione
    es.
    "estratti conti 10.02.2010"
    "fatture xxx 05.06.2010.xls"
    nel primo caso dovrebbe capire che tipo di file è, e dargli l'estensione annessa
    nel secondo caso dovrebbe passarla cosi com'è

    Il problema principale sarebbe far capire che tipo di file è senza avere il ".estensione"

    Grazie in anticipo per ogni risposta

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    1) Java ha una sezione dedicata
    2) Per come hai spiegato il problema direi che è impossibile sapere a priori se l'estensione è corretta oppure no... in base a quale criterio .2011 non è un'estensione valida? Se non specifichi ulteriori dettagli, è impossibile stabilire qualcosa.
    3) Se hai già del codice ed il problema è che dà risultati non attesi, postalo e spiega cosa ottieni.

    Sposto la discussione nel forum corretto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74
    Scusate non avevo visto la sezione apposita

    teoricamente io tolgo tutti gli spazi ed i punti sostituendoli con "_" quindi verrebbe fuori "estratti_conti_10_02_2010", non avrebbe nessun punto all'interno.
    Non ho una parte di codice se non quella dove trasforma il nome della stringa cosi come ho spiegato sopra, mi è stato consigliato di usare il mime type ma tutti gli esempi che ho trovato non mi sembrano servire al mio scopo.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ok, trasformi i punti in underscore.
    Nel tuo esempio precedente, questo file "fatture xxx 05.06.2010.xls" diventa "fatture_xxx_05_06_2010_xls".

    Quindi sei punto e a capo. Come stabilisci che "_xls" è valido, mentre "_2011" non lo è?

    Che cosa significa "usare il mime type"? Dove ce l'hai questa informazione?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74
    codice:
    public class modify { 	
    public static void main(String[] args) { 		
    String nome = "fatture xxx 05.06.2010.xls"; 	
    int punto = nome.lastIndexOf("."); 		
    String estensione = nome.substring(punto); 		
    nome = nome.replaceAll("[^A-Za-z0-9]", "_"); 	
    nome = nome.substring(0, punto); 		
    nome = nome += estensione; 		
    System.out.println("dopo: " + nome); 
    	} 
    }
    Mi sono appena accorto che eclipse si è incasinato, quindi tutto questo non so se funziona correttamente al momento.
    Comunque seguendo questa traccia avevo sistemato il problema della formattazione della stringa (che volevo senza spazi accenti ecc)

    Poi mi si è presentato il problema di file senza l'estensione nel nome.

    mime type non ho idea se possa servirmi o meno realmente, (sono ancora pesantemente nabbo sorry), ma ho trovato alcuni esempi qui
    "http://www.rgagnon.com/javadetails/java-0487.html"

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non so se a te serva per qualche motivo avere il nome senza spazi esenza punti, comunque, questa riga è più che sufficiente per lo scopo:

    codice:
    String nomeFileSenzaSpazi = nome.replaceAll("\\ ", "_").replaceAll("\\.", "_");
    Rimane il problema dell'estensione. Il MimeType ti serve a poco: con quello riesci semplicemente a distinguere i principali tipi di file (testo, immagine, pagina HTML, ecc), ma per quanto riguarda i file di dati non hai una soluzione fattibile. Un file .DAT e un file senza estensione (o che termina per .2011) saranno trattati entrambi come "application/octet-stream".

    Se spieghi esattamente cosa devi fare con l'estensione del file, magari si riesce a trovare la giusta soluzione al problema.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74
    Praticamente cè una lista di file da spostare da windows su linux solo che ovviamente alcuni nomi non sono compatibili, allora ci sarebbe da modificare il nome e andrebbe anche bene se non che in alcuni manca l'estensione e non si sa di che tipo sono.

    (serviva anche di togliere eventuali parole accentate ecc)

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74
    Infatti come dicevi tu il mimetype mi ha catalogato solo alcuni file, ha saltato quelli di excel sia di office che open office, il math di open office ed il publisher di office, mettendo application/zip.

    Ora non ho la minima idea di cosa poter fare
    come capisco che tipo di file è senza l'estensione? a questo punto anche non in java

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non ho capito cosa c'entra la compatibilità tra Windows e Linux, visto che, a maggior ragione su Linux, le estensioni non servono quasi a nulla. Linux, come Windows, accetta nomi di file lunghi fino a 255 caratteri, con spazi, punti, accenti e quant'altro.

    Ora non ho la minima idea di cosa poter fare
    come capisco che tipo di file è senza l'estensione? a questo punto anche non in java
    Qui non è questione di Java o non Java... qui è questione del fatto che ancora non si è capito cosa vuoi fare. A che ti serve sapere se il file ha un'estensione piuttosto che un'altra oppure non ce l'ha? Per sapere realmente con che tipo di file si ha a che fare, l'unica cosa plausibile è quella di aprirlo e leggerne il contenuto... chi mi vieta di prendere un file Pippo.zip e cambiargli l'estensione in .txt? Nessuno... ma il fatto che io abbia messo .txt come estensione, non fa diventare Pippo un file di testo.

    Cerca di spiegare cosa vuoi fare, poi si cerca una soluzione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    74
    Visto che sei l'unico che ha risposto direi che tu non hai capito, mi è stato detto che ci sono da spostare questi file e che non si vogliono spazi ne accenti, probabilmente c'e la spiegazione del perche ma non mi è stata detta.
    Ora da un file nominato "estratti_conti_10_02_2010" come faccio a capire se è .xls oppure .doc?
    Se la risposta alla mia domanda è
    Per sapere realmente con che tipo di file si ha a che fare, l'unica cosa plausibile è quella di aprirlo e leggerne il contenuto.
    Ok mi rassegno e trovo un'altro modo.
    Se invece non si è capito mi ripeto:
    "l'applicazione deve capire di che file si tratta (leggendo l'interno del file oppure in un'altro modo) e ridarmi un'estensione compatibile con il reale formato del file".

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 © 2025 vBulletin Solutions, Inc. All rights reserved.