Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Dosyalar ve dizinlerle çalışmak, veri depolaması ve alması gereken uygulamalar için temel bir görevdir. Go, platformdan bağımsız dosya yolu işlemleri için filepath paketini sağlar. Paket, dosya yollarını işlemek için işlevler içerir ve Windows, Linux ve macOS ile uyumludur.

Filepath'in içerdiği işlevler, geçerli olduklarından emin olmak için dosya yollarını birleştirebilir, bölebilir ve temizleyebilir. Pakette ayrıca dizinlerde gezinme ve dosya arama işlevleri vardır.

Yürüyen Dizin Ağaçları

bu Yürümek işlevi dosya yolu paketi, bir dizin ağacında yürümek ve dosyalar ve dizinler arasında ön sipariş usulüyle gezinmek için işlevsellik sağlar. Verilen kökün altındaki tüm dizinleri yinelemeli olarak ziyaret edecektir. Yürüme işlevi, bir kök dizini ve yolu, dosya bilgisi örneğini ve bir hata örneğini alan bir işlevi alır.

instagram viewer
paket ana

içe aktarmak (
"fmt"
"yol/dosya yolu"
"işletim sistemi"
)

işlevana() {
// Yürüyüşü başlatmak için kök dizini tanımlar
kök := "."

// Dizin ağacında yürümek için Yürüme işlevini kullanır
hata := dosya yolu. Yürümek (kök, işlev(yol sicim, bilgi işletim sistemi FileInfo, hata hatası)hata {
eğer hata!= sıfır {
geri dönmek hata
}

// Her dosyanın veya dizinin adını yazdırır
fmt. Println (yol)
geri dönmeksıfır
})

// Hataları kontrol eder
eğer hata!= sıfır {
fmt. Yazdır("Dizin ağacı yürütülürken hata oluştu: %v\n", hata)
}
}

Bu program, kök dizini geçerli çalışma dizini olarak tanımlar. bu ana işlev, kök dizindeki dizinleri dolaşır ve dosyaların adlarını yazdırır.

Desen Eşleştirme ile Dosyaları Eşleştirme

kullanabilirsiniz Kibrit dosya adlarını bir kalıba göre eşleştirme işlevi. Desen sözdizimi ortak temele dayanır meta karakterleri kullanan dosya joker karakter sözdizimi, Unix ortamlarında glob kalıpları olarak bilinir.

paket ana

içe aktarmak (
"fmt"
"yol/dosya yolu"
)

işlevana() {
// Eşleşecek deseni tanımlar
desen := "*.txt"

// Dosyalardaki deseni eşleştirmek için Match işlevini kullanır
eşleşme, hata := dosyayolu. Maç (desen, "dosya.txt")

eğer hata!= sıfır {
fmt. Yazdır("Kalıbı eşleştirme hatası: %v\n", hata)
geri dönmek
}

// Maçın sonucunu yazdırır
eğer kibrit {
fmt. Yazdır("Dosya desenle eşleşiyor.")
} başka {
fmt. Yazdır("Dosya desenle eşleşmiyor.")
}
}

bu ana işlevi bir dosya adıyla eşleşir. *.txt desen ve sonucuna bağlı olarak bir dize yazdırır koşullu ifade.

Temizleme İşleviyle Yolları Temizleme

bu Temiz işlev bir dosya yolunu alır ve gereksiz ayırıcıları ve dizin değişikliklerini kaldırarak yolun temizlenmiş bir sürümünü döndürür. . (geçerli dizin) ve .. (ana dizin) segmentleri.

Bir yol gereksiz ayırıcılar veya geçersiz bölümler içeriyorsa veya mevcut çalışma dizininden bağımsız yollar oluşturuyorsa, hataların önlenmesine yardımcı olduğundan, dosya yollarının temizlenmesi yararlıdır.

paket ana

içe aktarmak (
"fmt"
"yol/dosya yolu"
)

işlevana() {
// Fazladan ayırıcılar ve geçersiz bölümler içeren bir yol oluşturur
yol := "/foo/bar//baz/.././qux/"

// yolu temizler
cleanPath := dosyayolu. Temiz (yol)

// Orijinal ve temizlenmiş dosya yollarını yazdırır
fmt. Yazdır("Orijinal yol:", yol)
fmt. Yazdır("Temizlenmiş yol:", temizYol)
}

bu yol değişken, ilk dosya yoludur ve Temiz işlevi temizler yol değişken ve temizlenmiş dosya yolunu döndürür. bu ana işlev, ilk ve temiz dosya yollarını yazdırır.

Go'da Dosya Yollarını Birleştirme ve Bölme

bu Katılmak Ve Bölmek işlevler, dosya yollarını birleştirmek ve bölmek için işlevsellik sağlar.

Join işlevi, herhangi bir sayıda yol öğesini alır. İşletim sistemi için uygun yol ayırıcıyı kullanarak bu öğeleri birleştirmekten kaynaklanan tek bir dosya yolu dizesi döndürür. bu Katılmak işlevi, temeldeki dosya sisteminden bağımsız dosya yolları oluşturmak için kullanışlıdır.

paket ana

içe aktarmak (
"fmt"
"yol/dosya yolu"
)

işlevana() {
// Birleştirme işlemi için dört dosya yolu tanımlar
yol1 := "klasör1"
yol2 := "klasör2"
yol3 := "alt klasör1"
yol4 := "örnek.txt"

// Dört dosya yolunu tek bir yolda birleştirir
birleştirilmişYol := dosyayolu. Birleştirme (yol1, yol2, yol3, yol4)

// Birleştirilmiş dosya yolunu yazdır
fmt. Yazdır("Birleştirilmiş Yol:", birleştirilmişYol)
}

bu yol1, yol2, Ve yol3 değişkenler klasör adlarıdır ve yol4 değişken bir dosya adıdır. bu Katılmak işlev, yol değişken adlarını alır ve birleştirilmiş dosya yolunu döndürür. bu ana işlevi, birleştirilmiş dosya yolunu konsola yazdırır. fmt paket.

bu Bölmek işlev bir yol dizesi alır ve yolun dizin ve dosya adı bileşenlerini döndürür. bu Bölmek işlevi, dosya adlarını ayıklamak veya bir dosyanın üst dizinini belirlemek için kullanışlıdır.

paket ana

içe aktarmak (
"fmt"
"yol/dosya yolu"
)

işlevana() {
// Bölme işlemi için dosya yolunu ayarlar
dosyayolu := "/home/user/documents/example.txt"

// Dosya yolunu bölmek için Böl işlevini kullanın
// dizinine ve dosya bileşenlerine
dizin, dosya := dosyayolu. Böl (dosyaPath)

// Dizini ve dosya bileşenlerini yazdır
fmt. Yazdır("dizin:", yön)
fmt. Yazdır("Dosya:", dosya)
}

bu dosya yolu değişkeni orijinal dosya yoludur ve Bölmek fonksiyon alır dosya yolu değişken ve dizin ve dosya adlarını dizeler olarak döndürür. bu ana işlev, dizini ve dosya adlarını konsola yazdırır.

Go İle Metin Dosyalarını İşleyebilirsiniz

Go, dosya sistemi işlevselliğinin yanı sıra, metin dosyaları da dahil olmak üzere birden çok dosya türüyle çalışmanıza yardımcı olacak paketler sunar.

kullanabilirsiniz bufio metin dosyalarında ara belleğe alınmış giriş ve çıkış işlemlerine ve işletim sistemi diğer işlemlerin yanı sıra dosya oluşturmak için paket.