Skocz do zawartości


 

Sortowanie plików i ich przerzucenie po ID

Sortowanie plików i ich przerzucenie po ID php bash

  • Proszę się zalogować aby odpowiedzieć
2 odpowiedzi na ten temat

Sortowanie plików i ich przerzucenie po ID

#1 Gość_l3szcz_*

Gość_l3szcz_*
  • Goście

Napisany 01 czerwiec 2017 - 10:37

Witam, 

może dokładnie tytuł nie wyjaśnia tego co chcę osiągnąć ale już opisuję.

Mam katalog ze zdjęciami (powiedzmy img), w którym pliki są nazwane jako ID z bazy.

W tym momencie plików jest masakryczna ilość (około 300 000) i chcę je posegregować wedle ID po czym przerzucić do odpowiednich folderów.

Przykładowo - mam fotki z IDkami od 1 do 1000 i chciałbym by znalazły się one w folderze 1 gdzie "1" będzie oznaczać liczbę tysiąca a sam plik miałby się nazywać w tym folderze jako kolejny ID.

I o ile z przerzuceniem zdjęć od 1 do 1000 nie miałbym problemu zastanawiam się jak:

- zaokrąglić liczbę do tysiąca

- po czym zmienić nazwę pliku (najprostsze)

- przerzucić do odpowiedniego folderu (1-15)/id_pliku bez liczby tysiąca

 

Języki, które mogę wykorzystać to PHP / BASH.

 

Przykładowy wygląd folderu:

 

img/1/15.jpg

img/1/255.jpg


  • 0

#2 Fizyda

Fizyda

    Stały użytkownik

  • WHT Pro
  • PipPipPipPipPip
  • 495 postów

Napisany 01 czerwiec 2017 - 11:11

Pseudo kod:

currentID;

folderID = (int) (currentID / 1000); // zależnie od języka trzeba pozbyć się części dziesiętnych czyli rzutować lub zaokrąglić do inta
newID = currentID % 1000; // reszta z dzielenia czyli to co zostaje jest nowym id

copy(currentPath + "/" + currentID + ".jpg", "img/" + folderID + "/" + newID + ".jpg"); // wymyśliłem sobie funkcje generalnie przenosisz zależnie od języka plik do nowej lokalizacji budując ścieżkę jak w tym przykładzie

  • 0

#3 nnd_newbie

nnd_newbie

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 156 postów

Napisany 01 czerwiec 2017 - 12:17

A na ile chcesz folderów podzielić?

 

Bo czasami lepiej wziąć pod uwagę np. ostatnią (wtedy będzie 10 katalogów) lub dwie ostatnie (100 katalogów) cyfry z nazwy pliku.

 

Zalety:

- masz stałą liczbę katalogów

- masz pliki porozkładane równo po wszystkich katalogach

-  z samej nazwy możesz wywnioskować w którym katalogu powinien być dany plik (bez żadnych obliczeń), dzięki temu możesz np. tworzyć wpisy rewrite rule w .htaccess

- nie musisz zmieniać nazw plików


Edytowany przez nnd_newbie, 01 czerwiec 2017 - 12:17.

  • 0






Także otagowane jednym lub więcej z tych słów kluczowych: php, bash

0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników