Nazwy folderów tak jak data

Nazwy folderów tak jak data
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 430
0

Czy da się nazwać automatycznie dużą liczbę plików tak, aby nazwa pliku była taka sama jak data utworzenia?
O co mi chodzi i dokładniej wyjaśnię: odkąd mam telefon Huawei, nie mam problemu ze zdjęciami i filmami, bo są one nazywane właśnie od daty i godziny. To bardzo ułatwia sprawę w wielu kwestiach. Niestety wcześniej Sony numerowało mi zdjęcia od 0000 i później, gdy już zrobiłem ich 9999, to znów od 0000. Generuje to czasami konflikty, chociaż nawet jeśli nie chodzi tak bardzo o konflikty (można nazwać to np. z (2) itd.), to po prostu wygodniej jest, kiedy jest data.
Pytam tylko orientacyjnie.

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

Tak, jednolinkowy skrypt w PowerShellu na przykład, zmieniałem tak nazwy plików z kamerki z DSCN_0000 na 20201020-1231 na przykład.

PerlMonk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa 🐪
  • Postów: 1719
4

Jak wyżej - da się. Tylko warto mieć na uwadze, że data utworzenia może być taka jak data skopiowania na dysk. Np. na karcie plik leżał rok i został skopiowany na dysk. Wtedy może (ale nie musi) mieć datę z jaką został skopiowany, a nie tę sprzed roku. To zależy od tego jaki system plików jest na obu dyskach. Najczęściej daty kopiują się jak trzeba.

Przykładowy skrypt do zmiany nazw plików tekstowych:

Kopiuj
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);

sub getLastModificationDate {
	my $filePath = shift;
	my $lastModifyTime= (stat $filePath)[10];

	return strftime "%Y-%m-%d", localtime($lastModifyTime);
}

my $directoryPath = "files";

opendir (my $dirHandle, $directoryPath) || die "Can't opendir $directoryPath: $!";

for my $fileName (readdir $dirHandle) {
	if ($fileName =~ m/\.txt$/i) {
		my $lastModifyTime = getLastModificationDate "$directoryPath/$fileName";
		rename "$directoryPath/$fileName", "$directoryPath/$lastModifyTime" . "_$fileName";
		print "$directoryPath/$lastModifyTime"."_$fileName\n";
	}

}

closedir $dirHandle;

Rozszerzenia i nazwę katalogu można sparametryzować i używać :)

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 430
0

"Przykładowy skrypt do zmiany nazw plików tekstowych:"
To mi akurat chodzi tylko i wyłącznie o zdjęcia, czyli pliki graficzne (ew. filmy).
Pewnie to zbyt trudne dla mnie, aby napisać działający skrypt, ale miło, że się da. ;-)

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
2

Total Commander, "Narzędzie wielokrotnej zamiany".

hyde
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 456

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.