2011-09-20 14 views
7

Moja struktura plików ma dowiązanie symboliczne do katalogu/home/me/myDir ->/some/other/dir. Ten link jest aktualizowany przez inny proces i powiadamia mój proces. Po powiadomieniu próbuję dostać nową ścieżkę kanoniczną:ścieżka pliku kanonicznego w języku Java - problem z optymalizacją?

public static String getPath() 
{ 
    File file = new File("/home/me/myDir"); 
    if(file.exists()) 
    { 
     try 
     { 
     String canonical = file.getCanonicalPath(); 
     return canonical; 
     } 
     catch ... 
    } 

}

Problem polega na tym, że po link jest zmieniona (an i sprawdzeniu zmienia) to bierze 3-5 razy wywołania powyżej metody getPath(), aby faktycznie uzyskać nową ścieżkę przed zwróceniem poprzedniej ścieżki. Jedyne co mogę myśleć to to, że Java może optymalizować tę metodę i przywracać starą ścieżkę. Wszelkie pomysły i wgląd są bardzo cenne.

Odpowiedz

12

Spróbuj wyłączyć buforowanie Java w języku Java. Można to zrobić, ustawiając właściwości systemu na false.

Domyślnie nazwy plików kanonicznych są buforowane przez 30 sekund (odczytane ze źródła here).

+0

idealne! dzięki! – brad12s

Powiązane problemy