|
Antalya Tasarım Grubu - Web Tasarim Hizmetleri - Hosting (Barindirma) Islemleri - Alan Adi Islemlerii
Perl ile Dizin Işlemleri :
CGI sunucu tarafında çalışan bir programlama dilidir ve CGI programları sayesinde Perl dilinin kolaylıkları ve avantajlarını kullanarak kendi bilgisayarımızdaymışcasına rahat ve pratik olarak dosya ve dizin işlemleri yapabiliriz. Dosya işlemlerine örnek olarak dizindeki tüm dosyaları okuyup döngü ile ekrana yazdırma, klasör oluşturma, dosya silme (dosya içeriği değil!), klasör silme verilebilir.
Klasör oluşturma :
Klasör oluşturmak için mkdir() fonksiyonu kullanılır. mkdir() fonksiyonu ile içi boş bir dizin oluşturulur. Kullanımı şu şekildedir :
mkdir ("bosdizin");
Bu kod bize "bosdizin" isminde boş bir dizin oluşturacaktır.
Örnek :
#!/usr/bin/perl
# dizin1.cgi
use CGI qw(:standard);
print "Content-type:text/html\n\n";
$query = new CGI;
$dizinismi = $query -> param('dizinismi');
$istem = $query -> param('istem');
if ($istem eq "olustur") {
if ($dizinismi eq "") {
print "Lütfen geri dönüp dizin ismi bölümünü doldurun";
exit;
}
mkdir("$dizinismi");
print "$dizinismi isimli dizin başarıyla oluşturuldu.";
exit;
}
print "<form action=dizin1.cgi method=get>";
print "<input type=hidden name=istem value=olustur>";
print "<b>Oluşturmak istediğiniz dizin ismi :</b> ";
print "<input type=text name=dizinismi>";
print "<input type=submit value=Oluştur!>";
|
Dizin silme :
Varolan boş bir dizini silmek için rmdir() fonksiyonu kullanılır. Kullanımı şu şekildedir :
rmdir ("bosdizin");
Bu kod bize mevcut "bosdizin" ismindeki boş dizini silme olanağı verir.
Dosya silme :
Dizin içerisinde herhangi uzantıda bir dosyayı unlink() fonksiyonunu kullanarak silebilirsiniz. Bu fonksiyonla silinen dosyalar kalıcı olarak silinirler yani geri dönüşüm klasörüne gönderilmezler. Tabii windows işletim sistemi için konuşuyorum. Kullanımı şu şekildedir :
unlink ("dosya.txt");
Bu kod "dosya.txt" dosyasının silinmesini sağlar. Daha önce belirttiğim gibi dosya uzantısı önemli değildir, dosya.txt yerine dosya.jpg de olabilirdi başka uzantılı bir dosya da...
Dizin okuma :
Perl ile bir dizinde mevcut tüm dosyaları değişkene atayıp ekrana yazdırabiliriz. Bunun için opendir() fonksiyonu kullanılır. opendir() fonksiyonunun 2 tane argümanı vardır; Dosya tutamacı, dosya yolu. Kullanımı şu şekildedir :
opendir (DIR, "dizin");
Bu kod ile "dizin" isimli klasörü açmış oluruz. Dizin açarken göreceli yol da kullanabiliriz. Mesela az önceki örnekte "dizin" yazan yere sadece bir nokta (.) yazarsak program içinde bulunduğu klasörü, iki nokta (..) yazarsak içinde bulunduğu klasörün bir üst klasörünü gösterir. Sözgelimi program cgi-bin/dizin içerisinde çalışıyorsa opendir (DIR, "."); şeklinde bir kullanım ile cgi-bin/dizin klasörü, opendir (DIR, ".."); şeklinde bir kullanımda cgi-bin dizini okunur.
Dizin opendir () fonksiyonu ile açıldıktan sonra readdir(TUTAMAC) şeklinde içeriği isteğinize bağlı olarak kullanılabilir. Buradaki tutamaç opendir () fonksiyonu kullanılırken ilk argüman olarak kullanılan isimdir. Az önceki örnekte DIR yazısıdır. readdir () fonksiyonunu sort() fonksiyonu ile birlikte kullanırsak değişken içeriği alfabetik olarak sıralanır. şu şekilde :
opendir (DIR, ".");
@dizi = sort(readdir(DIR));
Bu kod önce içinde bulunduğu klasörü (.) açar, daha sonra alfabetik olarak sıralayıp @dizi isimli dizi değişkenin içeriğine atar. Dizin içeriği açılıp değişkene atandıktan sonra (ya da başka herhangi bir işlem yapıldıktan sonra) closedir(TUTAMAC) şeklinde dizin kapatılır.
opendir (DIR, ".");
@dizi = sort(readdir(DIR));
closedir (DIR);
Bu şekilde dizin içindeki her dosyayı dizi değişkenin birer elemanı halinde dizi değişkene atadıktan sonra bu dizi değişkeni kullanarak istediğimizi yapabiliriz. Örnek programda program içinde bulunduğu dizini açacak, dizi değişkene atayacak, kapatacak ve dizi değişkeni döngü ile ekrana yazdıracak :
#!/usr/bin/perl
# dizin2.cgi
use CGI qw(:standard);
print "Content-type:text/html\n\n";
opendir (DIR, ".");
@dizin = sort(readdir(DIR));
closedir (DIR);
print "<b> Dizin içindeki Dosyalar :</b>";
print "<ul>";
foreach $cevir (@dizin) {
print "<li><a href=$cevir>$cevir</a><br>";
}
print "</ul>";
|
p
|