Eksplorator plików, mutowalna ścieżka

0

W zasadzie to jest cały problem. Robie eksplorator plików i potrzebuje jakiegoś tymczasowego objektu File, który zawiera "teraźniejszą" (nie mam dużego zasobu słow) ścieżkę. Czyli jak jestem np w C:\folder, a potem przejde do C:\folder\foo to ten objekt musi sie zmienić. Niestety jak podaje oracle docs:

Instances of the File class are immutable

Ma ktoś może jakieś rozwiązanie?
PS
Z przejściem "w góre" nie jest jeszcze tak żle, bo istnieje funkcja .getParentFile()

1

Zawsze możesz mieć zmienną typu immutable i jej przypisywać inną wartość. Jaki problem? Dlaczego musisz koniecznie zmieniać ten File?

Zrób sobie:

File currentDirectory = new File(...)

currentDirectory = goToParent()
currentDirectory = goToChild("foo")
0

Zamiast zmieniać obiekt pamiętany w zmiennej, przypisz do tej zmiennej inny obiekt.
Przykład podglądowy dla Stringa, który również jest immutable:

String s;
s = "C:/foo";
s = s + "/bar";
2

@stasiek_raczejava: nie używaj File. Do obsługi ścieżek służy klasa Path.

1 użytkowników online, w tym zalogowanych: 0, gości: 1