Wyobraźmy sobie, że mam serię plików o nazwach 20120212012427 itd, co odpowiada dacie modyfikacji pliku. Jednak faktyczna data widziana przez system jest inna. Czy jest jakiś sposób, na masową zmianę daty modyfikacji plików na te z ich nazw?
http://www.softtreetech.com/24x7/archive/47.htm
Piszesz skrypt który przeleci przez wszystkie pliki w katalogu. Dla każdego odczyta nazwę, przerobi na format mm-dd-yyyy i wykorzysta jako argument dla w/w programu.
maviozo ==> Daj screena, bo nie ogarniam problemu :)
Masz datę modyfikacji pliku i chcesz ją zmodyfikować? :) Tak, aby wyglądała na datę utworzenia pliku?
O to Ci chodzi? (Powershell)
http://blogs.technet.com/b/heyscriptingguy/archive/2007/02/13/how-can-i-change-the-last-modified-timestamp-for-all-the-files-in-a-folder.aspx
kamyk->pliki nie mogą miec jednakowej daty, tylko daty z nazwy plików.
legrooch-> coś takiego -------->
jack->nawet jeśli, to nie rozwiązałoby problemu. Potrzebna jest koniecznie data modyfikacji, bp tylko po niej mogę sortować. Względnie proces odwrotny - z daty modyfikacji utworzyć nazwy plików i potem sortować alfabetycznie.
Seriously? Jaki soft daje mozliwosc sortowania tylko po dacie modyfikacji, a nie potrafi po nazwie??? Szczerze mowiac nie rozumiem problemu.
Jakby co, to np Total Commander ma zgrabne narzedzie do zmian nazw plikow (ale nie zmienia tam dat), moznaby np posortowac pliki w TC, zaznaczyc, odpalic toola, i wygenerowac im nazwy chociazby numeryczne, w kolejnosci (jesli jednak nazwa moze byc - ale przeciez przy aktualnych nazwach w formacie YYYYMMDD sortowanie alfabetyczne powinno normalnie dzialac).
Jak zawsze, trzeba wszystko od zera do dziewięciu wytłumaczyć.
Chodzi o to, że synchronizuję pliki z różnych urządzeń, natomiast soft może sortować albo wg dat modyfikacji, albo nazw (oczywiście są tam opcje sortowania wg przestrzeni barw, klatek na sekunde itp, ale akurat to nic nie wnosi do sprawy).
Każde z tych urządzeń generuje zupełnie różne nazwy z czego jeden daje nazwy w stylu:
dupa_001, dupa_002 z poprawnymi datami modyfikacji, natomiast drugie
20112131213414, 12312346254132 z datami modyfikacji które odpowiadają dacie importu do kompa.
Jak każda średnio zaawansowana ameba, również i ja zorientowałem się, że nie posortuję tego ani po nazwach, ani po modyfikacji, dlatego jedne trzeba dostosować do drugich. W [8] poście napisałem przecież, że mogę sortować wg nazw, tylko wtedy te nazwy musiały być zgodne z szablonem daty modyfikacji pierwszego urządzenia.
Czy teraz już rozumiesz problem?
Aha - potrzebuję dat bardzo dokładnych, w zasadzie co do sekundy.
Zamiast "tlumaczyc od zera do dziewieciu", mozna bylo od razu dokladnie opisac problem, bo pytanie "czy jest sposob" jest dziwne - sposob jest zawsze, kwestia to tylko ile pracy trzeba wlozyc, zeby go osiagnac. Osobiscie napisalbym program czytajacy liste plikow, i zmieniajacy im nazwy (albo robiacy kopie) na odpowiadajace dacie modyfikacji - proponowalbym Perl albo Jave (jako ze lubie Jave, choc perl jest generalnie mniej klopotliwy), albo w zasadzie cokolwiek innego, to podstawowe operacje na plikach - najlepiej jeszcze dodajacy predefiniowany suffix. Puszczasz takie cos na obu grupach plikow, i otrzymujesz cos, co mozna zgrac do jednego katalogu, i miec wszystko po kolei, z roznymi zakonczeniami nazw nie bedzie duplikatow, nawet jesli pierwotne daty byly dokladnie takie same. Watpie, zeby obylo sie bez odrobiny programowania, prawdziwego, lub co najmniej shellowego (pewnie pod unixem byloby latwiej).
Musisz to zrobić tak jak mówi wysiak tzn. napisać sobie programik który "przejeżdża" po wszystkich plikach ze wszystkich urządzeń i zmienia im nazwy odczytując datę utworzenia.
To ci się przyda, żeby odczytać datę utworzenia(GetCreationTime):
http://msdn.microsoft.com/en-us/library/system.io.file.aspx