Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czyszczenie katalogu z fotkami, 10000 plików w jednym katalogu
chomiczek
post
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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Radarek
post
Post #2





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

Ostrzeżenie: (0%)
-----


Gotowca pewnie nikt ci nie podsunie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Zarys bedzie wygladac tak:

  1. <?php
  2. $pliki_z_bazy = pobierz_z_bazy_tablice_nazw_plikow_ktore_chcesz_zostawic();
  3. $pliki_z_katalogu = pobierz_nazwy_plikow_z_wybranego_katalogu();
  4.  
  5. foreach ($pliki_z_katalogu as $plik) {
  6. if (!in_array($plik, $pliki_z_bazy) {
  7. skasuj($plik);
  8. }
  9. }
  10.  
  11. ?>


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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 22:36