Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Utilizzo del Path dei File

    Ciao Ragazzi,

    questa mattina mi è sorto un problema che sinceramente non capisco...

    La mia applicazione utilizza un jFileChooser per selezionare solo files xml per poi passarli ad un parser Sax già implementato e che funziona correttamente.

    Ovvaimento una volta selezionato il file devo ricavare il suo Path e passarlo alla funzione che richiama il parser.

    Ora tutto questo funziona correttamente se il file si trova ad esempio in D:\ o in C:\ ma se si trova in una qualche directory il parser non lo trova...

    Ad esempio se ho il File in C:\Documents and Settings\Michele\Documenti\Università\Tesi non riesce a trovarlo...

    All'inizio quando avevo implementato il parser gli passavo direttamente il file cambiando le \ con / oppure inserendone 2 //...

    Ora non posso passargli sempre lo stesso file ma devo selezionarlo...come faccio???

    Grazie per gli aventuali consigli...attendo
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Utilizzo del Path dei File

    Originariamente inviato da vespaslight125
    Ora tutto questo funziona correttamente se il file si trova ad esempio in D:\ o in C:\ ma se si trova in una qualche directory il parser non lo trova...

    Ad esempio se ho il File in C:\Documents and Settings\Michele\Documenti\Università\Tesi non riesce a trovarlo...

    All'inizio quando avevo implementato il parser gli passavo direttamente il file cambiando le \ con / oppure inserendone 2 //...
    Se guardi bene, il parser ha sicuramente un metodo che fa il parse che accetta già direttamente un oggetto File, quindi non vedo la necessità di fare conversioni o manipolazioni sul path.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    mmm... io non lo vedo...o non lo trovo...parser(File file) l'ho creato io come metodo e non mi accetta il path...il parser l'ho creato con il tutorial di borland

    codice:
    import java.io.*;
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    
    public class Parser
        extends DefaultHandler {
    
       private static int INDENT = 2;
    
      public void parser(File file) {
       /* if (args.length != 1) {
          System.out.println("Usage: java georss.Parser [URI]");
          System.exit(0);
        }*/
    
        System.setProperty("javax.xml.parsers.SAXParserFactory",
                           "org.apache.xerces.jaxp.SAXParserFactoryImpl");
    
        String uri = file.getAbsolutePath();
        try {
          SAXParserFactory parserFactory = SAXParserFactory.newInstance();
          parserFactory.setValidating(false);
          parserFactory.setNamespaceAware(false);
          Parser ParserInstance = new Parser();
          SAXParser parser = parserFactory.newSAXParser();
          parser.parse(uri, ParserInstance);
        }
        catch (IOException exception) {
          exception.printStackTrace();
        }
        catch (SAXException exception) {
          exception.printStackTrace();
        }
        catch (ParserConfigurationException exception) {
          exception.printStackTrace();
        }
        catch (FactoryConfigurationError exception) {
          exception.printStackTrace();
        }
        
      }
      private int idx = 0;
    
      public void characters(char[] ch, int start, int length) {
        String s = new String(ch, start, length);
        if (!s.startsWith("\n"))
          System.out.println(getIndent() + " Value: " + s);
    
      }
    
      public void endDocument() {
        idx -= INDENT;
        System.out.println(getIndent() + "end document");
        System.out.println("...PARSING ends");
    
      }
    
      public void endElement(String url, String localName, String qName) {
        System.out.println(getIndent() + "end element");
        idx -= INDENT;
    
      }
    
      public void startDocument() {
        idx += INDENT;
        System.out.println("PARSING begins...");
        System.out.println(getIndent() + "start document: ");
    
      }
    
      public void startElement(String uri, String localName, String qName,
                               Attributes attributes) {
    
        idx += INDENT;
        System.out.println('\n' + getIndent() + "start element: " + qName);
    
      }
    
      private String getIndent() {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < idx; i++)
          sb.append(" ");
        return sb.toString();
      }
    
      }
    Forse mi conviene fare le conversioni...
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da vespaslight125
    mmm... io non lo vedo...o non lo trovo...parser(File file)
    Io lo vedo, lo vedo!!!

    SAXParser ha ben 10 metodi parse() in overload, tra cui:
    <qui>


    P.S. quando chiami parse(), tu crei una nuova istanza della tua classe. Se vogliamo fare i pignoli (e io lo sono) basta passare 'this', non serve creare una nuova istanza ... ci sei già dentro!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ottimo...risolto grazie mille... Grandissimo!!!

    P.S. Forse devo ancora capire capire come cercare le cose nelle API...
    Nerviamo nel cuore la Gnocca sempre, ma in Testa e sotto il Culo la Mia VESPA!!!

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.