Quando si tenta di eliminare un file presente nel server tomcat conf/Catalina/localhost dal codice java, quindi file.delete() restituisce sempre falso . Ma se sto controllando il file con la funzione file.exists() restituisce true. Non ho alcuna eccezione. Per favore aiutaci perché questo sta accadendo. Qual è la soluzione per questo?java file.delete() restituisce false ma file.exists() restituisce true
risposta
Quando sto cercando di eliminare un file che è presente nel server Tomcat conf/Catalina/localhost dal codice Java allora File.Delete() sempre restituisce false. Ma se sto controllando il file con la funzione file.exists() restituisce true.
Molto probabilmente non avete il permesso per l'eliminazione di file (s) sul server. Controlla le tue autorizzazioni.
f.delete()
restituisce false indica che non è/non può essere eliminato e f.exists()
restituisce true, quindi il file esiste ma non può essere eliminato.
Ho il pieno permesso del server. Se sto cercando di cancellare lo stesso file, qualche volta il file viene cancellato ma il tempo massimo non è in grado di eliminarlo e la funzione restituisce false. – vishal
@vishal non lo fai quando non funziona. – Sajmon
C'è qualche altro metodo o libreria che aiuterà a risolvere questo problema. Perché ho il requisito di eliminare il file utilizzando il codice. – vishal
significa che il file è esistente, ma il processo di Java non hanno il permesso di cancellare that.That è il motivo per funzione di eliminazione sta tornando falsa
Returns: true if and only if the file or directory is successfully deleted; false otherwise
Quindi indicatemi come assegnare il permesso al processo java per eliminare il file. Perché devo cancellare il file per codice comunque. – vishal
Ci sono un certo numero di motivi per cui un file non può essere cancellato; potrebbe non esistere, potrebbe essere una directory non vuota, potresti non aver chiuso tutte le risorse che lo utilizzano, e il tuo programma potrebbe non avere il permesso di farlo, per citarne alcuni.
Sfortunatamente il metodo File.delete()
fornisce pochissime informazioni sul perché; sta a te decidere di districarti e capirlo. Ma ci sono buone notizie; non si desidera utilizzare File
in primo luogo.
Java 7 ha introdotto il nuovo pacchetto java.nio.file
che è un'API di accesso ai file molto più robusta. Fornisce il concetto di un astratto Path
e separa le operazioni concrete nella classe Files
, in particolare fornisce Files.delete()
che è documentato per generare chiare eccezioni che descrivono i motivi per cui l'eliminazione potrebbe non riuscire.
Utilizzare Path
e Files
; sarai contento di averlo fatto.
È necessario chiudere lo stream prima di eliminarlo.
per esempio -
fileInputStream.close();
file.delete();
Se la directory non è vuota, allora File.delete()
metodo restituirà falso senza gettare un errore.
È necessario pulire la directory prima di eliminarla.
- 1. PHP is_writable() restituisce true ma file_put_contents() restituisce false
- 2. restituisce le uscite true 1 ma restituisce false output niente
- 3. Perché False == False in [False] restituisce True?
- 4. Perché (true && 1) restituisce 1, ma (1 && true) restituisce true?
- 5. File.Exists restituisce true e OpenExisting ha esito negativo con DirectoryNotFoundException
- 6. python come "negare" valore: se true restituisce false, se false restituisce true
- 7. Perché self.class === MyClass restituisce false, mentre self.class == MyClass restituisce true?
- 8. Perché {} == false valutare su false while [] == false restituisce true?
- 9. isalpha (<mychar>) == true restituisce false?
- 10. HttpRequest.Content.IsMimeMultipartContent() restituisce false quando deve restituire true
- 11. NSFileManager.defaultManager(). FileExistsAtPath restituisce false anziché true
- 12. Perché 128 == 128 restituisce false ma 127 == 127 restituisce true quando si converte in wrapper Integer?
- 13. QThread emette il segnale finished() ma isRunning() restituisce true e isFinished() restituisce false
- 14. InPlaceBitmapMetadataWriter.TrySave() restituisce true ma non fa nulla
- 15. Devo chiamare File.Exists prima di chiamare File.Delete?
- 16. Laravel Mail invia email ma restituisce false
- 17. NetworkInfo.isConnected() restituisce true ma nessuna connessione
- 18. SignedXml checksign restituisce false
- 19. addAll() restituisce false?
- 20. ScrollViewer.ChangeView restituisce false
- 21. Java Class.isAssignableFrom restituisce false ... solo all'esterno IDE
- 22. Perché Request.IsSecureConnection restituisce false quando è previsto true
- 23. restituisce ajax true/false - Ho implementato una richiamata
- 24. get_browser() restituisce FALSE
- 25. espressione regolare java che restituisce false
- 26. isProviderEnabled (LocationManager.NETWORK_PROVIDER) restituisce false
- 27. int.TryParse() restituisce false per "#. ##"
- 28. Immutable.Set.contains restituisce false
- 29. Perché String.Equals restituisce false?
- 30. PrincipalContext.ValidateCredentials restituisce sempre FALSE
se file.delete() restituisce false, quindi significa che non è stato eliminato. Quindi file.exists() restituirà true. Non c'è niente di sbagliato – rajesh
Controlla i permessi del file. – m0skit0
Il file esiste, ma non può essere cancellato. È tutto. – Ingo