Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    NoSuchFileException ma il file esiste

    Quali sono i motivi per cui un programma Java non dovrebbe vedere un file che invece esiste?
    Coi "vecchi" package java.io viene lanciata una abbastanza agenerica FileNotFoundException, mentre col nuovo java.nio.file una specifica NoSuchFileException, quindi per lui proprio non esiste...
    Il sistema è Windows 7, a cosa può essere dovuto? Non è nemmeno racchiuso in un jar, i file sono semplicemente in una cartella e compilati a riga di comando...

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa ma le due eccezioni dicono la stessa cosa.
    Poi se leggi bene una java.io e l'altra e java.nio, package differenti

    Che file provi ad accedere? Soprattutto coi vecchi jar trovi il file?

    boh senza codice mi pare di andare a tentoni
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    scusa ma le due eccezioni dicono la stessa cosa.
    Poi se leggi bene una java.io e l'altra e java.nio, package differenti

    Che file provi ad accedere? Soprattutto coi vecchi jar trovi il file?

    boh senza codice mi pare di andare a tentoni
    Veramente proprio nelle API son scritte le differenze...
    http://docs.oracle.com/javase/7/docs...Exception.html
    http://docs.oracle.com/javase/7/docs...Exception.html
    FileNotFoundException può anche esser lanciata quando il file esiste e sopraggiungono problemi nell'accesso, mentre NoSuchFileException indica che il file proprio non esiste (almeno per il programma).
    Si l'ho anche detto che sono in package differenti, che c'entra? Non ho capito.

    Sono semplici file *.txt fatti da blocco note, non ho usato jar né prima né ora.

    Il codice è questo, non c'è altro:

    codice:
    BufferedReader r = Files.newBufferedReader(
     				Paths.get("test.txt"), 
    				Charset.forName("US-ASCII"));
    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora non ci siamo capiti, se il tuo problema è capire che il file non ci sia, entrambe ti dicono la stessa e identica cosa. Se tu mi dici: io con java.io ho FileNotFoundException e capisco che il file non c'è, cambiando package (java.nio) posso assumere che NoSuchFileException abbia lo stesso significato.
    Se poi il file ESISTE e con java.io non ho problema, ma con java.nio ho problemi allora rientrano in gioco i permessi (un'altra causa dell'eccezione).

    Il sistema è Windows 7, a cosa può essere dovuto? Non è nemmeno racchiuso in un jar, i file sono semplicemente in una cartella e compilati a riga di comando...
    Poi se spieghi il tuo problema, perché non è che sia chiaro, cioé vado ad intuito.
    RTFM Read That F*** Manual!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    allora non ci siamo capiti, se il tuo problema è capire che il file non ci sia, entrambe ti dicono la stessa e identica cosa. Se tu mi dici: io con java.io ho FileNotFoundException e capisco che il file non c'è, cambiando package (java.nio) posso assumere che NoSuchFileException abbia lo stesso significato.
    Se poi il file ESISTE e con java.io non ho problema, ma con java.nio ho problemi allora rientrano in gioco i permessi (un'altra causa dell'eccezione).


    Poi se spieghi il tuo problema, perché non è che sia chiaro, cioé vado ad intuito.
    Non ci siamo capiti, forse ho usato male i verbi, il problema è semplicemente che ho un fle che non riesco ad aprire, ricevendo queste eccezioni, ma il file esiste. E ho postato per avere qualche consiglio su quali potrebbero essere le cause. Pensavo che dal titolo si capisse.
    Con "viene lanciato" intendevo che ho provato e ricevo le suddette eccezioni.

    Spero di essermi spiegato meglio.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Titolo o non titolo, devi spiegarmi bene come e cosa fai.

    Altro problema allora sono i permessi di accesso alle risorse, cosa che in seven è gestita un po' meglio rispetto al passato. Devi controlalre quelli
    RTFM Read That F*** Manual!!!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Dov'è, fisicamente, questo file?

    Perchè se l'utente con cui viene avviato il programma non ha permessi di lettura (anche a livello di directory), che il file esista o non esista riceverai sempre una delle due eccezioni. Che ne sa il programma se il file non esiste fisicamente, oppure se esiste ma lui non lo può vedere? Se non lo può vedere, per lui non esiste e basta. E siccome stiamo parlando di Windows 7, dove le restrizioni dovute alla sicurezza si nascondono dietro ad ogni angolo dell'hard disk, non escluderei affatto questa ipotesi.


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valia
    Titolo o non titolo, devi spiegarmi bene come e cosa fai.

    Altro problema allora sono i permessi di accesso alle risorse, cosa che in seven è gestita un po' meglio rispetto al passato. Devi controlalre quelli
    Non faccio nient'altro che quelle 3 righe postate in un main.

    Se fossero i permessi usando java.nio non dovrebbe lanciarmi qualcos'altro, tipo AccessDeniedException?

    Comunque controllo, grazie.

    EDIT @LeleFT grazie anche a te, a maggior ragione controllo
    Il file è nella partizione del sistema operativo, ho provato anche direttamente nella partizione per avere meno problemi possibili col path.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    lo so, ma in seven (ci ho sbattuto contro un po) la gestione delle cartelle, dei permessi ecc può diventare deleteria.
    Controlla tutto il path.
    Però il file lo vede inesistente, quindi
    1. controlla path che passi
    2. controlla accesso ad ogni cartella del path
    RTFM Read That F*** Manual!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    altra piccola nota di tecnica generale: quando "debuggi", metti dei banalissimi controlli dove serve (i.e.: stampa a console eventuali valori di variabili, nel tuo caso il path assoluto al file che cerchi di leggere - succede sovente di ricevere inaspettate sorprese)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.