jpg dosya yaratış tarihi

Katılım
14 Mart 2005
Mesajlar
87
selam;
benim digital kameramla çektiğim (dv recorder) resimlerimin (jpeg) üzerine çekiliş tarihini bilgisayarın içine alırken otomatik yazamamak gibi bir sıkıntım var. aklıma dosya adını yaratılış tarihi olarak değiştirmek geldi. ancak 2000 adet ten fazla dosya için tek tek windowsta sap tıklat özelliklerinden tarhine bak sonra çıkıp yeniden adlandır diyerek elle metin gir işlemi oldukça uzun geldi.

excel hastası birisi olarak konuyu makrolarla çözebileceğim gibi bir yanılgıya kapıldım... tabii ki boyumun ölçüsünü aldım. :( derler ya "kalem kıpırdatamadım" işte öyle oldu... ne dersiniz excel olmasa bile nerede ve nasıl yapabilriim bir fikri olan var mı...?

not:
yanlış topiğin altına yazmış olabilirm. şimdiden özür diliyorum
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sözkonusu resimlerinizi bilgisayarınızda D:\TestFolder klasörünü oluşturup, içine yerleştirin. Daha sonra aşağıdaki kodu çalıştırın;

Kod:
Sub Test()
    Dim FSO As Object, MyFolder As Object, MyFile As Object
    Dim Temp1 As String, Temp2 As String, Temp3 As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set MyFolder = FSO.GetFolder("D:\TestFolder")
    For Each MyFile In MyFolder.Files
        If LCase(Right(MyFile.Name, 3)) = "jpg" Then
            Temp1 = MyFile.Path
            Temp2 = Format(MyFile.DateLastModified, "ddmmyyyy-hhmmss")
            Temp3 = Replace(Temp1, MyFile.Name, Temp2)
            Name Temp1 As Temp3 & ".jpg"
        End If
    Next
End Sub
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Haluk Hocam;

Kodları test ettim aşağıdaki satırda takıldı.

Name Temp1 As Temp3 & ".jpg"

(Office 2003)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Levent bey, günaydın.

Kodları tekrar denedim bir problem yok. Aklıma gelen tek ihtimal, fotoğraflardan 2 tanesinin aynı gün ve saatte çekilmiş olması. Bu nedenle aynı dosya ismine rastladığı için kodlar hata veriyordur.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Günaydın Haluk Bey;

Sözkonusu kodlara ait excel dosyası ve .jpg dosyalarını d:\TestFolder klasörü ile birlikte ekte iliştiriyorum. Bu kez hata vermedi (.jpg dosyalarını 3 tanesini bıraktım) ama işlemde yapmadı.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Levent bey, *.zip olarak ekleyebilirmisiniz ?
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Tamam hocam .zip olarak ekte.

Hocam;

Gönderdikten sonra winrar kullanmadığınızı farkettim. Şahsi bir soru olacak ama winrar daha iyi değil mi?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Levent bey, iş yerimde *.rar uzantılı dosyalar her nedense erişimi sistem yöneticisi tarafından engellenmiş durumda.

Bu arada, göndediğiniz zip dosyasındaki resim adlarına baktığımda, kodların doğru çalıştığını görüyorum.

İsterseniz, problemli olan resim dosyalarını orjinal haliyle ekleyin de o zaman bakalım probleme.
 
Katılım
14 Mart 2005
Mesajlar
87
haluk bey;
ellerinize kolarınıza sağlık. dün gece saat 4 e kadar sizin kodları yamak için uğraştım ve beklediğim gibi hiç çalışmadı....

tam istediğim gibi olmuş tekrar teşekkürler..


not:
sadece merakımdan soruyorum çok önemli değil...

Format(MyFile.DateLastModified, "dd mmmm yyyy hh:mm") için;


1-saati 17:58 gibi çift noktalı yazdığımda hata veriyor neden...?
2- ben formatı değiştirmek istedim. saniyeyi kaldırdım. file exist hatası veriyor doğal olarak .bazı dosyalarda .error code 58 miş. dosya isminden saniyeyi çıkartsak hata codu 58 gelirse 17:43--2 gibi isimlendir diyebilirmiyiz...?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba,

Klasör veya dosya adlarında bütün karakterleri kullanamıyoruz, bu Windows'un bir kısıtlaması.

Diğer taraftan, kodu aşağıdaki gibi değiştirdim. Böylece, hem 21-10-2007 , 14-06-2001 .... gibi fotoğrafların tarihlerine göre otomatik klasörler oluşturuluyor hem de, bu kalsörlerin içindeki resim dosyaları ggaayyy-1, ggaayyyy-2 .... gibi adlandırılıyor.

Sanırım bu daha çok işe yarar.

Kod:
Sub Test2()
    Dim FSO As Object, MyFolder As Object, MyFile As Object
    Dim Temp1 As String, Temp2 As String
    Dim NewDir As String
    Dim i As Long
    Dim objFolder As Object, objFile As Object
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set MyFolder = FSO.GetFolder("D:\TestFolder")
    For Each MyFile In MyFolder.Files
        i = 1
        If LCase(Right(MyFile.Name, 3)) = "jpg" Then
            Temp1 = MyFile.Path
            If Dir("D:\TestFolder\" & Format(MyFile.DateLastModified, "ddmmyyyy"), vbDirectory) = Empty Then
                On Error Resume Next
                    NewDir = "D:\TestFolder\" & Format(MyFile.DateLastModified, "dd-mm-yyyy")
                    MkDir NewDir
                On Error GoTo 0
            End If
            
            Temp2 = Format(MyFile.DateLastModified, "ddmmyyyy")
            
            Set objFolder = FSO.GetFolder(NewDir)
            
            For Each objFile In objFolder.Files
                i = i + 1
            Next
            
            Name Temp1 As "D:\TestFolder\" & Format(MyFile.DateLastModified, "dd-mm-yyyy") & "\" & Temp2 & "-" & i & ".jpg"
        Set objFolder = Nothing
        End If
    Next
    Set MyFolder = Nothing
    Set FSO = Nothing
End Sub
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Haluk Bey;

2. Verdiğiniz kodlar sorunsuz çalıştı. Teşekkürler.
 
Katılım
14 Mart 2005
Mesajlar
87
dehşet ve ibret içinde haluk beyi izliyorum
:)
teşekkürler tekrar...
 
Üst