![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewnien problem, a mianowicie mam ok 10000 plików w jednym katalogu, jednak tylko 7500 jest mi potrzebnych, tzn. uzywanych czy gdzieś tam wyświetalnych przeze mnie.. musze w jakiś sposób skasować te zbędne pliki..
z bazy mogę wygenerować sobie nazwy plików, ale tylko do tych, które są mi potrzebne.. czyli do tych 7500 w jaki sposób wykasować pozostałe pliki, tzn. te, które nie będą przeze mnie wygenerowane. Pomysły, które rozważam to np.: 1. Pobranie z bazy nazwy pliku i zmiana nazwy tego pliku np. na OK_nazwapliku, a następnie wykasowanie tych plików, które nie mają na początku OK_. 2. Drugi pomysł (chociaż chyba mało wydajny) miałby polegać na wpisaniu całości nazw plików do jednej tablicy (tych, któe mogę wyciągnąć z bazy), potem wpisanie zawartości katalogu do drugiej tablicy i ich porównanie. Zastanawiam się na porównaniem, a mianowicie.. jeśli nazwa pliku z katalogu nie znalazłaby się w tablicy z nazwami plików z bazy to plik jest kasowany.. problem taki, że takie porównanie musiałoby byc powtórzone 10000 razy!! Żeby było ciekawiej 10000 zdjęć jest w 3 katalogach, czyli tak naprawę muszę ten skrypt powtórzyć 3 razy dla każdego katalogu oddzielnie (są tam różne pliki).. Jak myślicie, które rozwiązanie jest lepsze, szybsze, wydajniejsze.. a może jest jakis inny (czyt. łatwiejszy) sposób?? -------------------- created by chomiczek
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 2 Dołączył: 29.01.2004 Skąd: Rz-ów Ostrzeżenie: (0%) ![]() ![]() |
ja bym uzyl sposobu 2. porownywanie wcale nie trwa tak dlugo,
ostatnio porownywalem tablice z 1500 elementami z tablice z 17000 elementow + zaladowanie danych z pliku, czas cos kolo 50 sekudn. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Gotowca pewnie nikt ci nie podsunie
![]()
Dla pewnosci (gdybys sie bal, ze jednak sobie cos skasujesz;)) mozesz te pliki przeniesc do jakiegos innego katalogu. Ten post edytował Radarek 7.02.2006, 22:29:28 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Spoko spoko.. niechodzi tutaj o to jak to będzie wyglądało, bo nie ma problemu, żebym nadpisał.. a co do testów.. zawsze robię backup.. po kilku przykrych doświadczeniach nauczyłem sie
![]() -------------------- created by chomiczek
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 15.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
dla pewności porównałbym rozmiar.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
w tym przypadku nie ma chyba potrzeby porównania rozmiary.. właśnie sprawdzam jak to zadziała.. :/
-------------------- created by chomiczek
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A masz miejsce, by skopiowac gdzies te potrzebne pliki? Jeśli tak to robisz pętlę w której odczytujesz z bazy nazwę pliku, kopiujesz go do nowej lokalizacji i tak dla wszystkich rekordów. Na koniec wywalasz stary katalog.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Już sobie poradziłem.. wpisałem faktyczną zawartość katalogu do jednej pętli, a to co mogłem wyciągnąć z bazy wpisałem do drugije.. następnie poruwnałem zawartośc obu tablic i skasowałem pliki, które nie powinny się znaleźć w katalogu.. skrypt nie wykonywał sie więcej jak 60 sekund (wyczyszczenie 3 katalogów z 10000 zdjęc każdy). Jeśli ktoś będzie chciał to wrzuce listing.. ogólnie podobny do tego co napisał Radarek
Dzięki serdeczne za pomoc. -------------------- created by chomiczek
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:08 |