Klasör içine sürükle bırak yaptığım resimler otomatik isimlendirildin

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
Email Bot
Kilobyte2
Kilobyte2
Mesajlar: 369
Kayıt: 20 Mar 2022, 23:50
Teşekkür etti: 2 kez
Teşekkür edildi: 32 kez

Klasör içine sürükle bırak yaptığım resimler otomatik isimlendirildin

Mesaj gönderen Email Bot »

Bir sorum olucaktı. Akıllı bir klasör oluşturmak istiyorum. İçine, internetten resim sürükle bırak yaptığımda klasörün içine düştüğü anda kendisi otomatik numaralansın. Mesela boş bir klasörü oluşturdum. İçine sürükle bırak ile ilk resmimi attım ve ismini kendi elimle RESİM 1 olarak isimlendirdim. Bundan sonra 10-larla 100-lerle resmi sürükle bırak yaptığımda kendim yazmaya gerek kalmadan RESİM 2, RESİM 3 diye böyle otomatik numaralanarak islimlensin. Bunu yapmanın programsı ve programlı öntemi var mı acaba?
Kullanıcı avatarı
TRWE_2012
Exabyte3
Exabyte3
Mesajlar: 13165
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 1835 kez
Teşekkür edildi: 4192 kez

Re: Klasör içine sürükle bırak yaptığım resimler otomatik isimlendirildin

Mesaj gönderen TRWE_2012 »

Email Bot yazdı: 07 Kas 2025, 19:22 Bir sorum olucaktı. Akıllı bir klasör oluşturmak istiyorum. İçine, internetten resim sürükle bırak yaptığımda klasörün içine düştüğü anda kendisi otomatik numaralansın. Mesela boş bir klasörü oluşturdum. İçine sürükle bırak ile ilk resmimi attım ve ismini kendi elimle RESİM 1 olarak isimlendirdim. Bundan sonra 10-larla 100-lerle resmi sürükle bırak yaptığımda kendim yazmaya gerek kalmadan RESİM 2, RESİM 3 diye böyle otomatik numaralanarak islimlensin. Bunu yapmanın programsı ve programlı öntemi var mı acaba?
Evet bu yapılabilir...

WindowsOS -PowerShell Betik Ortamı (not: denemedim sadece teorik olarak yazıyorum)

Kod: Tümünü seç

$folderPath = "C:\Users\TRWE_2012\Pictures\RESIMLER"

# FileSystemWatcher oluştur
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $folderPath
$watcher.Filter = "*.*"
$watcher.EnableRaisingEvents = $true
$watcher.IncludeSubdirectories = $false

# Event tanımı
Register-ObjectEvent $watcher Created -Action {
    Start-Sleep -Milliseconds 500 # Dosyanın tam olarak yazılmasını bekle
    $files = Get-ChildItem $folderPath -Filter "RESİM *.*"
    $maxNumber = ($files.Name -replace 'RESİM (\d+).*','$1' | Measure-Object -Maximum).Maximum
    if (-not $maxNumber) { $maxNumber = 0 }
    
    $newFile = $Event.SourceEventArgs.FullPath
    $extension = [System.IO.Path]::GetExtension($newFile)
    $newName = "RESİM $($maxNumber + 1)$extension"
    Rename-Item -Path $newFile -NewName $newName
}

# PowerShell penceresini açık bırak
Write-Host "İzleme başladı..."
Nasıl çalışır: Bu betik klasörü izler, yeni bir dosya eklenince otomatik olarak “RESİM 1, RESİM 2…” şeklinde adlandırır.
Avantaj: İnternetten sürükle-bırak ile ekleme anında çalışır.
Not: PowerShell penceresi açık olmalı veya betiği arka planda çalıştırmalısın.
Not-2: Bu bölümü kendine göre değiştirmelisin...

Kod: Tümünü seç

$folderPath = "C:\Users\TRWE_2012\Pictures\RESiMLER"
Eğer denersen ve hata ile karşılaşırsanız buraya yazın...(Hata kodlaması ve iletisini de)

GNU/Linux Mint tarafında

Kod: Tümünü seç

#!/bin/bash
WATCH_DIR="/home/TRWE_2012/Resimler/RESIMLER"

inotifywait -m -e create "$WATCH_DIR" --format '%f' | while read FILE
do
    sleep 1  # dosyanın tamamen gelmesini bekle
    EXT="${FILE##*.}"
    MAX=$(ls "$WATCH_DIR"/RESİM* 2>/dev/null | grep -oP 'RESİM \K\d+' | sort -n | tail -1)
    if [ -z "$MAX" ]; then
        MAX=0
    fi
    NEW_NAME="RESİM $((MAX + 1)).$EXT"
    mv "$WATCH_DIR/$FILE" "$WATCH_DIR/$NEW_NAME"
done
NOT :

Dikkat ederseniz kodlama bloğunda inotify var bunu hemen kısaca açıklamak isterim.(eğer merak ederseniz okuyun, merak etmiyorsanız okumayın)

inotify, Linux çekirdeğinde (kernel) yerleşik bir dosya sistemi izleme mekanizmasıdır. Yani bir klasörde veya dosyada olan değişiklikleri gerçek zamanlı olarak takip etmenizi sağlar.

Örnek bir basit kodlama :

Kod: Tümünü seç

inotifywait -m -e create /home/TRWE_2012/Resimler/RESIMLER
Kodlamanın Sözel Kısa Özet Açıklaması :

-m : sürekli izleme (monitor mode)
-e create : yalnızca dosya/dizin oluşturma olaylarını yakalar

Çıktı örneği:

Kod: Tümünü seç

RESIMLER/ CREATE yeni_resim.jpg
Yani bu komut, klasöre yeni bir dosya geldiğinde hemen haber verir. Bu sayede otomatik numaralandırma kendiliğinden tetiklenir.GNU/Linux böyle basit ve karmaşık işlerde büyük kolaylık sağlar.
Kullanıcı avatarı
Kayserilifatih
Petabyte2
Petabyte2
Mesajlar: 6164
Kayıt: 30 Ağu 2024, 20:48
Teşekkür etti: 641 kez
Teşekkür edildi: 4720 kez

Re: Klasör içine sürükle bırak yaptığım resimler otomatik isimlendirildin

Mesaj gönderen Kayserilifatih »

Bunun için ben Advanced Renamer programını tavsiye ederim, araştırdığımda bunun bu programla mümkün olduğu söyleniyor fakat benim işim düşmediği için denemedim siz bir deneyin derim


https://www.gezginler.net/indir/advanced-renamer.html
Cevapla

“Programlama ve Script dilleri” sayfasına dön