Próbuję napisać aplikację Java działającą w środowisku Linux na systemie plików NFS.Najlepszy sposób na rozróżnienie ESTALE i ENOENT w Javie
Zauważyłem, że po wywołaniu java.io.File.exists()
, zwraca false zarówno dla ESTALE
(Stale uchwyt pliku NFS) i ENOENT
(Brak takiego pliku lub katalogu). Do mojej aplikacji potrzebuję możliwości rozróżnienia tych dwóch elementów.
Obecnie rozważam wdrożenie połączenia stat()
przy użyciu JNA, ale to wydaje się być przesadą, co z koniecznością zaimplementowania całej struktury statystyk i wszystkich rzeczy, które wydają się być zależne od platformy.
Czy istnieje prosty sposób na proste uzyskanie podstawowej errno
po wywołaniu Java, takim jak File.exists()
lub innym pomysłu na rozwiązanie tego problemu?
Podoba mi się ta sugestia. Zastanawiałem się też nad implementacją 'access (file, F_OK)', co było dużo prostsze, ale okazuje się również nie różnicuje 'ESTALE' i' ENOENT'. W końcu jednak znaleźliśmy rozwiązanie, które nie wymagało tego zróżnicowania. –