Takip et

Bir Dizin İçindeki Öğeleri Boyutlarına Göre Ters Sırada Sıralama: Python, PowerShell, C# ve Go

Bir Dizin İçindeki Öğeleri Boyutlarına Göre Ters Sırada Sıralama: Python, PowerShell, C# ve Go

Dosya ve klasörleri boyuta göre sıralama, bir dizinde yer alan öğelerin düzenli bir şekilde görüntülenmesi için faydalı bir işlemdir. Bu makalede, Python, PowerShell, C# ve Go programlama dillerini kullanarak bir dizindeki öğeleri boyuta göre ters sırada sıralamayı ele alacağız.

Python ile Dizin Öğelerini Boyuta Göre Ters Sırada Sıralama

Python’da, bir dizindeki öğeleri boyuta göre ters sırada sıralamak için `os` ve `pathlib` modüllerinden yararlanabiliriz. Aşağıdaki kod bloğu, belirtilen bir dizindeki tüm öğeleri boyuta göre ters sırada sıralayarak listeleyen bir Python betiği örneğidir.

“`python
import os
import pathlib

def sirala_boyuta_gore(dizin_yolu):
“””Belirtilen bir dizindeki tüm öğeleri boyuta göre ters sırada sıralar.

Args:
dizin_yolu: Öğelerin sıralanacağı dizinin yolu.

Returns:
Sıralanmış öğe listesi.
“””

# Dizin içindeki öğeleri bir listeye ekle
ogeler = []
for ogeler in os.scandir(dizin_yolu):
ogeler.append(ogeler)

# Öğeleri boyuta göre ters sırada sırala
sirali_ogeler = sorted(ogeler, key=lambda ogeler: ogeler.stat().st_size, reverse=True)

# Sıralanmış öğeleri yazdır
for ogeler in sirali_ogeler:
print(ogeler.name, ogeler.stat().st_size)

# Belirtilen dizinin yolunu gir
dizin_yolu = input(“Dizin yolunu girin: “)

# Öğeleri boyuta göre ters sırada sırala
sirala_boyuta_gore(dizin_yolu)
“`

Yukarıdaki kod bloğunda, `os.scandir()` fonksiyonu, belirtilen dizindeki tüm öğeleri listeler. `sorted()` fonksiyonu ise öğeleri, `key` parametresine göre ters sırada ( `reverse=True`) sıralar. `key` parametresi olarak, `lambda` fonksiyonu kullanılarak her öğenin boyutunu temsil eden `stat().st_size` özniteliği belirtilmiştir.

PowerShell ile Dizin Öğelerini Boyuta Göre Ters Sırada Sıralama

PowerShell’de, `Get-ChildItem` cmdlet’ini kullanarak bir dizindeki öğeleri boyuta göre ters sırada sıralayabiliriz. Aşağıdaki kod bloğu, belirtilen bir dizindeki tüm öğeleri boyuta göre ters sırada sıralayarak listeleyen bir PowerShell betiği örneğidir.

“`powershell
# Belirtilen dizinin yolunu gir
$dizin_yolu = Read-Host “Dizin yolunu girin:”

# Dizin içindeki öğeleri boyuta göre ters sırada sırala
Get-ChildItem $dizin_yolu | Sort-Object -Property Length -Descending

# Sıralanmış öğeleri yazdır
“`

Yukarıdaki kod bloğunda, `Get-ChildItem` cmdlet’i, belirtilen dizindeki tüm öğeleri listeler. `Sort-Object` cmdlet’i ise öğeleri, `-Property` parametresiyle belirtilen `Length` özniteliğine göre ters sırada ( `-Descending`) sıralar.

C# ile Dizin Öğelerini Boyuta Göre Ters Sırada Sıralama

C#’da, `System.IO` ad alanındaki `DirectoryInfo` sınıfını kullanarak bir dizindeki öğeleri boyuta göre ters sırada sıralayabiliriz. Aşağıdaki kod bloğu, belirtilen bir dizindeki tüm öğeleri boyuta göre ters sırada sıralayarak listeleyen bir C# betiği örneğidir.

“`csharp
using System;
using System.IO;

public class Program
{
public static void Main(string[] args)
{
// Belirtilen dizinin yolunu gir
Console.Write(“Dizin yolunu girin: “);
string dizin_yolu = Console.ReadLine();

// Dizin içindeki öğeleri boyuta göre ters sırada sırala
DirectoryInfo dizin = new DirectoryInfo(dizin_yolu);
FileInfo[] ogeler = dizin.GetFiles(“*”, SearchOption.TopDirectoryOnly);

Array.Sort(ogeler, (x, y) => y.Length.CompareTo(x.Length));

// Sıralanmış öğeleri yazdır
foreach (FileInfo ogeler in ogeler)
{
Console.WriteLine(ogeler.Name + ” – ” + ogeler.Length);
}
}
}
“`

Yukarıdaki kod bloğunda, `DirectoryInfo` sınıfı, belirtilen dizini temsil eder. `GetFiles()` metodu, dizindeki tüm dosyaları listeler. `Array.Sort()` metodu ise dosyaları, `Length` özniteliğine göre ters sırada (`y.Length.CompareTo(x.Length)`) sıralar.

Go ile Dizin Öğelerini Boyuta Göre Ters Sırada Sıralama

Go’da, `os` paketini kullanarak bir dizindeki öğeleri boyuta göre ters sırada sıralayabiliriz. Aşağıdaki kod bloğu, belirtilen bir dizindeki tüm öğeleri boyuta göre ters sırada sıralayarak listeleyen bir Go betiği örneğidir.

“`go
package main

import (
“fmt”
“os”
“sort”
)

func main() {
// Belirtilen dizinin yolunu gir
var dizin_yolu string
fmt.Print(“Dizin yolunu girin: “)
fmt.Scanln(&dizin_yolu)

// Dizin içindeki öğeleri bir listeye ekle
var ogeler []os.FileInfo
dosyalar, err := os.ReadDir(dizin_yolu)
if err != nil {
fmt.Println(err)
return
}
for _, dosya := range dosyalar {
ogeler = append(ogeler, dosya)
}

// Öğeleri boyuta göre ters sırada sırala
sort.Slice(ogeler, func(i, j int) bool {
return ogeler[i].Size() > ogeler[j].Size()
})

// Sıralanmış öğeleri yazdır
for _, ogeler := range ogeler {
fmt.Println(ogeler.Name(), ogeler.Size())
}
}
“`

Yukarıdaki kod bloğunda, `os.ReadDir()` fonksiyonu, belirtilen dizindeki tüm öğeleri listeler. `sort.Slice()` fonksiyonu ise öğeleri, `Size()` metoduna göre ters sırada sıralar.

Sonuç

Bu makalede, Python, PowerShell, C# ve Go programlama dillerini kullanarak bir dizindeki öğeleri boyuta göre ters sırada sıralamayı ele aldık. Belirtilen her dil için örnek kodlar sunarak, bu işlemi nasıl gerçekleştireceğinizi gösterdik. Her dilin farklı avantajları ve dezavantajları vardır, bu nedenle en uygun dil projenizin ihtiyaçlarına göre seçilmelidir.

**Not:** Bu makalede ele alınan yöntemler, dosya ve klasörlerin boyutlarına göre sıralama işlemini gerçekleştirir. Eğer dosya ve klasörlerin isimlerine göre sıralama işlemi yapmak istiyorsanız, `sort` fonksiyonunun `key` parametresini veya ilgili dildeki sıralama komutlarını kullanarak bunu sağlayabilirsiniz.

Daha fazla bilgi edinmek ve farklı sıralama yöntemleri hakkında bilgi almak için **[Fatih Soysal](https://fatihsoysal.com)** web sitesini ziyaret edebilirsiniz.

#Etiketler: Python, PowerShell, C#, Go, Dizin Sıralama, Dosya Boyutu, Ters Sıralama, Programlama Dili, Dosya İşlemleri, Klasör İşlemleri

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version