Reklama: Najlepszy program partnerski w sieci , KLIKNIJ

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Mariusz P. Specjalista ds.
informatyki

Temat: Hurtowa zmiana nazw wielu plików

Witam

Chyba wpadłem w jakąś pułapkę :-) Nazwy plików zapisywane są w ArraysList<String> (zmienna filterFiles). Do zmiany nazwy pliku używam metody renameTo. Zmieniam nazwy wszystkim przefiltrowanym (zdjęcia: jpg, gif, png itp) plikom w danym katalogu. Niestety zmiana nazw w pętli (w/g wpisywanego wzorca - zmienna pattern) bywa różna. Nie zmienia nazw wszystkim plikom (połowa, kilka plików). Nie wiem co się dzieje. Samo listowanie zmiennej wyświetla wszystkie nazwy plików. Rozumiem, że zmienia się zawartość katalogu gdy zaczynają być zmieniane nazwy, ale zawartość zmiennej pozostaje bez zmian - nie jest odświeżana po każdej zmianie nazwy pojedynczego pliku. Może mam złe podejście do tematu?


for (int i = 0, j = 1; i < filterFiles.size(); i++, j++) {
File oldFile = new File(selectedDirectory + File.separator + filterFiles.get(i));
File newFile = new File(selectedDirectory + File.separator + pattern + "-" + j + oldFile.toString().substring(oldFile.toString().lastIndexOf(".")));
boolean Rename = oldFile.renameTo(newFile);
.
.
.
}
29.12.2011, 16:02

Temat: Hurtowa zmiana nazw wielu plików

Mariusz P.:
A czy sprawdzasz wartość zmiennej "Rename"? Może JVM nie ma dostępu do niektórych plików, bo są w jakiś sposób chronione przez system?
29.12.2011, 16:49

Mariusz P. Specjalista ds.
informatyki

Temat: Hurtowa zmiana nazw wielu plików

Sprawdzam. To jest to w tych kropeczkach. Akurat uprawnienia nie mają tu nic do rzeczy. Dałem sobie nawet wypisywanie w tej pętli zawartości zmiennych oldFile i newFile i wygląda na to, że niektóre pliki są po prostu w jakiś "magiczny" sposób pomijane. Przy pierwszej zmianie nazw połowa plików ma ja zmienianą. Przy kolejnej próbie w/g tego samego wzorca też jakby brana była kolejna połowa, ale wtedy już są błędy zgłaszane poprzez zmienną rename.Mariusz P. edytował(a) ten post dnia 29.12.11 o godzinie 17:04
29.12.2011, 16:57

Temat: Hurtowa zmiana nazw wielu plików

Mariusz P.:
Puściłem ten kod na katalogu z przykładowymi plikami i działa poprawnie.
29.12.2011, 17:02

Temat: Hurtowa zmiana nazw wielu plików

Mariusz P.:
Dużo masz tych plików?
29.12.2011, 17:07

Mariusz P. Specjalista ds.
informatyki

Temat: Hurtowa zmiana nazw wielu plików

Bo czasem się uda zmienić za pierwszym razem nazwy wszystkich plików. Testuję na katalogu zawierającym 14 plików jpg.Mariusz P. edytował(a) ten post dnia 29.12.11 o godzinie 17:08
29.12.2011, 17:07

Temat: Hurtowa zmiana nazw wielu plików

Mariusz P.:
A w tych "kropeczkach" nie dodajesz przez przypadek nic do zmiennej 'i'?
29.12.2011, 17:11

Mariusz P. Specjalista ds.
informatyki

Temat: Hurtowa zmiana nazw wielu plików

Nie. Zwracałem na to uwagę. Czy nie lepiej zamiast pętli for nie byłoby zastosować przechodzenia po iteratorze?Mariusz P. edytował(a) ten post dnia 29.12.11 o godzinie 17:24
29.12.2011, 17:19

Temat: Hurtowa zmiana nazw wielu plików

Możesz spróbować z iteratorem, ale pętla "for" powinna zupełnie poprawnie tu działać.
29.12.2011, 17:28

Mariusz P. Specjalista ds.
informatyki

Temat: Hurtowa zmiana nazw wielu plików

Dzięki za pomoc. Znalazłem przyczynę. Wypisywałem dodatkową kolekcję na komponent (tabela SWT), ale zrobiłem to jeszcze w pętli for, zamiast poza nią. Dlatego chyba tak głupiało :-) (druga pętla for w pętli for choć nie po zmiennej i). Tak to jest jak się pisze takie rzeczy po północy :-) Potem samemu ciężko dojść co miałem wtedy na myśli tworząc taki, a nie inny kod :-) No, ale w każdym razie miałem dobre przeczucie, że chodzi o coś z kolekcją :-)Mariusz P. edytował(a) ten post dnia 29.12.11 o godzinie 17:35
29.12.2011, 17:34



Wyślij zaproszenie do