Şimdi Ara

FSO ya Giriş.....(FileSystemObject)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
29
Cevap
0
Favori
1.997
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • FileSystemObject Nedir?

    FileSystemObject (kısaca FSO diyeceğiz) ASP'nin dolayısıyla VBScriptin bize sağladığı sihirli bir değnektir. FSO ile çalıştığı bilgisayarın üzerindeki tüm dosya ve klasörlere ulaşabilir, onlarla kolayca istediğiniz işlemleri yapabiliriz. Bunun içinde dosyaları kopyalamak, silmek, taşımak, listelemek, text dosyaları düzenlemek, yeni dosyalar oluşturabilmek,dosyaların özelliklerini değiştirebilmek vardır. Yani bilgisayarınızda dosyalar üzrinde yaptığınız işlemlerin aynılarını yapabilirsiniz. FSO çok geniş bir konu aslında.Bir çok özelliği ve metodu var. Bunları gruplayarak anlatmak en doğrusu olacaktır. Böylece konu içinde neyin nerede olduğunu bulabilirsiniz. Ben öncelikle FSO'nun özelliklerini ve metotlarını anlatacağım. Sonrada dosya işlemleri,klasör işlemleri,sürücü işlemleri olarak anlatacağım.

    FSO'yu kullanabilmek için önce Set komutu ile bir FSO nesnesi oluşturmak gerekir. Bu nesne olmadan işlem yapamayız.



    <%
    Set FSO = CreateObject("Scripting.FileSystemObject")
    %>





    Burda hatırlanması kolay olsun diye nesnemize de FSO ismi verdik. Bundan sonraki örneklerde tekrar tekrar bu nesneyi oluşturmayacağız. Ama siz FSO gördüğünüz yerde bunun daha önceden yukarıdaki şekilde oluşturulduğunu bilmelisiniz.







    BuildPath

    Verdiğiniz bir yol üzerine verdiğiniz isimde yeni yol ekler. Yol ifadesinin geçerli bir yol ifadesi olması gerekmez. String üzerinde işlem yapar.

    YeniYol = FSO.BuildPath(yol,eklenecek isim)

    <%
    YeniYol = FSO.BuildPath("C:\Inetpub\wwwroot","images")
    %>


    YeniYol değişkeninin değeri "C:\Inetpub\wwwroot\images" olur.

    <%
    Response.Write FSO.BuildPath("Metin","Aksu")
    %>


    Çıktısı "Metin\Aksu" olur.

    Sadece tek bir isim kullanmak zorunda değilsiniz. "images" yerine "images\deneme" şeklinde de verebilirsiniz. Bu durumda da çıktı "C:\Inetpub\wwwroot\images\deneme" olacaktır. Bu metodun yaptığı işi aşağıdaki şekilde de yapabilirsiniz.

    <%
    YeniYol = "C:\Inetpub\wwwroot" & "\" & "images"
    %>


    Ama sizin ana ve eklenecek yolunuz fazladan slashlar içeriyorsa yada değişkenler başka yerden alınıyor ve nasıl geldiğini bilmiyorsanız BuildPath sizi bunları temizleme derdinden kurtarır.

    <%
    YeniYol = FSO.BuildPath("C:\Inetpub\wwwroot\","\images")
    %>


    Çıktısı "C:\Inetpub\wwwroot\images" olur.








    CopyFile

    Belirtilen bir hedeften yine belirtilmiş bir başka hedefe bir veya daha çok dosyayı kopyalar.

    FSO.CopyFile KaynakDosya(yada Dosyalar),Hedef,Overwrite

    Kaynak kopyalanacak olan dosya yada dosyaların ismidir. Hedef ise ya kopyalanacak olan klasör ismi yada farklı bir isimle kopyalanacak ise yeni dosya ismidir. Overwrite ise eğer kopyalanacak dosya hedefte zaten var ise üzerine yazıp yazılmayacağını belirler. True olursa dosyanın üzerine yazar.False olursa dosyanın zaten var olduğunu söyleyip hata verir. Eğer belirtilmez ise varsayılan olarak True kabul edilir. Kopyalanmak istenen klasör var olmalıdır. Yoksa yol bulunamadı hatası verir.

    <%
    FSO.CopyFile "c:\resim.bmp" , "d:\Resimler\", True
    %>

    Bu kod c sürücündeki resim.bmp dosyasını D sürücüsünde ki Resimler klasörüne kopyalar. Eğer dosya var ise üzerine yazar.
    <%
    FSO.CopyFile "c:\resim.bmp" , "d:\Resimler\", False
    %>

    Bu kodda C sürücündeki resim.bmp dosyasını D sürücüsünde ki Resimler klasörüne kopyalar. Ama eğer dosya var ise hata verir ve kopyalamaz. Eğer True yada False olarak belirtmezseniz varsayılan olarak True kabul edilir.

    <%
    FSO.CopyFile "C:\resim.bmp" , "D:\Resimler\"
    %>

    ile
    <%
    FSO.CopyFile "C:\resim.bmp" , "D:\Resimler\resim.bmp"
    %>

    tamamen aynı işi yapar.

    <%
    FSO.CopyFile "c:\resim.bmp" , "D:\Resimler\picture.bmp"
    %>

    Bu kod ise C sürücündeki resim.bmp dosyasını D sürücüsündeki Resimler klasörüne picture.bmp ismiyle kopyalar. Bir nevi farklı kaydet olayı yani.

    CopyFile metodu ile birden çok dosyayı da aynı anda kopyalayabilirsiniz.

    <%
    FSO.CopyFile "C:\*.*" , "D:\Deneme\"
    %>


    Burda *.* demekle C sürücünde ki tüm dosyaları D sürücüsündeki Deneme klasörüne kopyalıyoruz. Tabi ki burada yeni isim belirtme seçeneğimiz yok. Sadece hedef klasör belirtebiliyoruz.

    *.* yerine joker karakterler kullanarak kopyalanacak dosyalar için değişik seçenekler oluşturabiliriz.

    *.txt = sadece txt uzantılı olanlar
    b*.* = isminin ilk harfi b olanlar
    boot.* = ismi boot olan dosyalar
    ?a*.* = isminin 2. harfi a olan dosyalar
    ?b?.ini = 3 harfli ve isminin 2. harfi b olan ini uzantılı dosyalar.

    NOT : FSO ile bu şekilde dosya kopyalayacağınız gibi "FSO ile dosya işlemleri" konusunda göreceğiniz gibi GetFile ile dosyayı bir nesneye atayıp "DosyaNesnesi.Copy Hedef" şeklinde de kopyalayabilirsiniz. Ancak bu şekilde tek bir dosya kopyalayabilirsiniz.

    <%
    FSO.CopyFile "C:\Resim.bmp" , "D:\Resimler\Resim.bmp"
    'veya
    FSO.CopyFile "C:\Resim.bmp" , "D:\Resimler"
    %>

    ile
    <%
    Set Dosya = FSO.GetFile("C:\Resim.bmp")
    Dosya.Copy "D:\Resimler", True(False)
    %>

    aynı işi görür.







    CopyFolder

    Belirtilen bir hedef klasörü tüm alt klasörleri ve dosyaları ile birlikte belirtilen bir hedef klasöre kopyalar.

    FSO.CopyFolder KaynakKlasor,Hedef,Overwrite

    KaynakKlasor kopyalanacak olan klasör, Hedef kaynak klasörün kopyalanacağı hedef klasördür. Overwrite ise True veya False değerlerini alarak eğer klasör var ise klasörün üzerine yazılıp yazılmayacağını belirler. True olursa üzerine yazılır. False olursa yazılmaz. Eğer belirtilmez ise varsayılan olarak True kabul edilir.

    <%
    FSO.CopyFolder "C:\Windows","D:\Deneme\",True
    %>

    Bu kod C sürücüsündeki Windows klasörünü tüm içeriğiyle beraber D sürücüsündeki Deneme isimli klasörün içine kopyalar.Hedef belirtilirken sonunda slash kullanıldığına dikkat edin. Eğer slash kullanmazsanız Windows klasörünün içeriği(kendisi değil) Deneme klasörüne kopyalanır.

    <%
    FSO.CopyFolder "C:\Deneme\*","D:\Deneme\"
    'veya
    FSO.CopyFolder "C:\Deneme\*","D:\Deneme"
    %>


    Bu şekilde C sürücüsündeki Deneme klasörünün sadece alt klasörleri D sürücüsündeki Deneme klasörüne kopyalanır.

    Eğer hedef olarak verdiğiniz klasör yok ise oluşturulur ve kaynak klasörün içeriği buraya kaydedilir. Yani farklı kaydetme olayı. Mesela D sürücüsünde WinXP isimli bir klasör yok diyelim.
    <%
    FSO.CopyFolder "C:\Windows","D:\WinXP"
    %>

    Bu durumda C sürücüsündeki Windows klasörü D sürücüsüne WinXP ismiyle kaydedilir. Hedef klasör belirtilirken yine slash kullanılmadığına dikkat edin.

    Eğer XYZ klasörü yoksa
    <%
    FSO.CopyFolder "C:\Windows","D:\XYZ\WinXP"
    %>

    derseniz hata alırsınız. FSO sizin için bir XYZ klasörü oluşturup bunun içine WinXP'yi oluşturmaz. Ama eğer XYZ klasörü varsa WinXP klasörü yoksa bu oluşturulur ve kaynak klasör içeriği bunun içine kopyalanır. Eğer WinXP klasörü de varsa bu durumda, yukarda belirtildiği gibi, sonda slash kullanılıp kullanılmadığına bağlı olarak kaynak klasör aynı isimle klasör yapısı korunarak veya sadece içeriğiyle bu klasör içine kopyalanır.

    NOT : FSO ile bu şekilde klasör kopyalayacağınız gibi "FSO ile klasör işlemleri" konusunda göreceğiniz gibi GetFolder ile klasörü bir nesneye atayıp "KlasorNesnesi.Copy Hedef" şeklinde de kopyalayabilirsiniz. Ancak bu şekilde tek bir klasör kopyalayabilirsiniz.

    <%
    FSO.CopyFolder "C:\Windows" , "D:\Deneme", True(False)
    %>

    ile
    <%
    Set Klasor = FSO.GetFolder("C:\Windows")
    Klasor.Copy "D:\Deneme", True(False)
    %>

    aynı işi görür.






    CreateFolder

    Adından anlayacağınız gibi verdiğiniz klasör içinde verdiğiniz isimde boş bir klasör oluşturur.

    FSO.CreateFolder YeniKlasor

    True/False şeklinde bir argümanı yoktur. Eğer oluşturulmak istenen klasör varsa hata verir.

    <%
    FSO.CreateFolder "C:\Deneme"
    %>

    C sürücüsünde Deneme isimli bir klasör oluşturur.

    <%
    FSO.CreateFolder "C:\Metin\Aksu"
    %>

    Eğer C sürücünde Metin isimli bir klasör varsa içine Aksu isminde bir klasör oluşturur. Eğer yoksa yol bulunamadı hatası verir.

    <%
    FSO.CreateFolder "C:\Windows\System32\MetinAksu"
    %>


    System32 klasörü içinde MetinAksu isminde bir klasör oluşturur.






    DeleteFile

    Belirttiğiniz bir dosya yada dosyaları siler.

    FSO.DeleteFile Dosyaİsmi

    <%
    FSO.DeleteFile "C:\Deneme.txt"
    %>


    Siz direk dosya ismi yerine CopyFile konusunda işlediğimiz gibi joker karakterler kullanarak birden fazla dosyayı silebilirsiniz.

    <%
    FSO.DeleteFile "C:\Deneme\*.*"
    %>


    C sürücüsünde ki Deneme klasörü içindeki tüm dosyaları siler.

    *.txt = sadece txt uzantılı olanlar
    b*.* = isminin ilk harfi b olanlar
    boot.* = ismi boot olan dosyalar
    ?a*.* = isminin 2. harfi a olan dosyalar
    ?b?.ini = 3 harfli ve isminin 2. harfi b olan ini uzantılı dosyalar.

    NOT : Siz bu şekilde dosya silebileceğiniz gibi GetFile ile oluşturduğunuz dosya nesnesinin Delete yöntemiyle nesnenin tuttuğu dosyayı silebilirsiniz.

    <%
    Set Dosya = FSO.GetFile("C:\Deneme\Resim.bmp")
    Dosya.Delete
    %>


    Böylece Resim.bmp dosyası silinmiş oldu.






    DeleteFolder

    Verdiğiniz bir klasörü tüm alt dosya ve klasörleri ile birlikte siler.

    FSO.DeleteFolder Klasörİsmi

    Klasör ismi sonunda \ yada / işareti kullanmamalısınız.Yoksa hata alırsınız.

    <%
    FSO.DeleteFolder "C:\Deneme"
    %>

    C sürücüsündeki Deneme klasörünü tüm içeriğiyle beraber siler.

    NOT : Siz bu şekilde klasör silebileceğiniz gibi GetFolder yöntemiyle oluşturduğunuz klasör nesnesinin Delete metodu ile de nesnenin tuttuğu klasörü silebilirsiniz.

    <%
    Set Klasor = FSO.GetFolder("C:\Deneme")
    Klasor.Delete
    %>

    C sürücüsündeki Deneme klasörü silinmiş oldu.





    Devam Edeceğizz...........................







  • Güzel bi çalışma elllerine sağlık asp ile ilgilenenlerin ve öğrenmek isteyenlerin çok işine yarayacaktır
  • soyturk eline sağlık FSO konusu gerçekten faydalı bir konu..http://www.fsomanual.com/ adresinde de nerdeyse fso ile ilgili herşey var hem türkçe hemde çok güzel anlatılmış..
  • devam Ediyoruz....




    DriveExists

    Belirttiğiniz sürücünün var olup olmadığını test eder. Eğer var ise True yoksa False değeri döndürür.

    FSO.DriveExists("Sürücü Harfi")

    Verilecek değer Windows'un sürücüleri isimlendirme kurallarına uymalıdır. Yani bir sürücüyü ifade etmek için harf kullanmalısınız. Aksi takdirde çıktı olarak her zaman False değeri döndürür.

    <%
    Response.Write FSO.DriveExists("C")
    %>

    Ekrana True yazdıracaktır.
    <%
    Response.Write FSO.DriveExists("Z")
    %>

    Eğer hard diskinizi paramparça etmediyseniz False değeri döndürecektir. :)))))

    Sürücü harfini tek başına yada önüne : veya :\ veya :/ konmuş şekilde kullanabilirsiniz.

    <%
    FSO.DriveExists("C")
    FSO.DriveExists("C:")
    FSO.DriveExists("C:\")
    FSO.DriveExists("C:/")
    %>


    Yukarıdaki kullanımların hepsi geçerlidir.
    Küçük bir örnek.

    <%
    Set Suruculer = FSO.Drives

    For Each Surucu in Suruculer

    If FSO.DriveExists(Surucu.DriveLetter) Then
    Response.Write Surucu.DriveLetter & "sürücüsü hazır"
    Else
    Response.Write Surucu.DriveLetter & "sürücüsü hazır değil"
    End If

    Next
    %>



    FileExists


    Verdiğiniz bir dosyanın var olup olmadığını denetler. Var ise True yoksa False değeri döndürür.

    FSO.FileExists("Dosya İsmi")

    <%
    If FSO.FileExists("C:\Deneme.txt") = True Then
    Response.Write "dosya var"
    Else
    Response.Write "dosya yok"
    End If
    %>



    FolderExists

    Verdiğiniz bir klasörün var olup olmadığını denetler. Var ise True yoksa False değeri döndürür.

    FSO.FolderExists("Klasör İsmi")

    <%
    If FSO.FolderExists("C:\Inetpub\wwwroot\Deneme") = True Then
    Response.Write "klasör var"
    Else
    Response.Write "klasör yok"
    End If
    %>



    GetAbsolutePathName

    Verdiğiniz bir yol için sürücünün root dizininden Windows isimlendirme kuralına göre tam yolu getirir. Verdiğiniz yolun geçerli olup olmaması yada Windows standartlarına uyması önemli değildir. Çünkü bu metot string üzerinde işlem yapar.

    FSO.GetAbsolutePathName("yol")

    <%
    Response.Write FSO.GetAbsolutePathName("C:\Inetpub\wwwroot")
    Response.Write FSO.GetAbsolutePathName("C:\Inetpub\wwwroot\")
    Response.Write FSO.GetAbsolutePathName("C:\Inetpub\wwwroot/")
    Response.Write FSO.GetAbsolutePathName("C:/Inetpub/wwwroot/")
    %>


    Hepsinin de çıktısı "C:\Inetpub\wwwroot" şeklinde olur.

    <%
    Response.Write FSO.GetAbsolutePathName("C:\Metin/Aksu/deneme.abcdefg")
    %>


    Çıktısı "C:\Metin\Aksu\deneme.abcdefg" şeklinde olur.

    <%
    Response.Write FSO.GetAbsolutePathName(Server.Mappath("/Deneme"))
    %>


    Çıktısı "C:\Inetpub\wwwroot\Deneme" olur.


    GetBaseName

    Verdiğiniz bir yoldaki dosya yada klasörün taban adını getirir. Verdiğiniz yolun geçerli olması yada Windows standartlarına uyması önemli değildir. Çünkü bu metotta string üzerinde işlem yapar.

    FSO.GetBaseName("yol")

    <%
    Response.Write FSO.GetBaseName("C:\Metin\Aksu\deneme\index")
    Response.Write FSO.GetBaseName("C:\Metin\Aksu\deneme\index\")
    Response.Write FSO.GetBaseName("C:\Metin\Aksu\deneme\index.asp")
    Response.Write FSO.GetBaseName("C:\Metin\Aksu\deneme\index.asp\")
    Response.Write FSO.GetBaseName("deneme\index\")
    Response.Write FSO.GetBaseName("deneme\index.asp")
    Response.Write FSO.GetBaseName("index.asp")

    Response.Write FSO.GetBaseName(Server.Mappath("index"))
    Response.Write FSO.GetBaseName(Server.Mappath("index.asp"))
    %>


    Hepsinin çıktısı "index" olur.


    GetDrive
    Verdiğiniz bir sürücü harfi için o harfe sahip sürücü üzerinde işlemler yapılabilen bir sürücü nesnesi döndürür. Sürücü geçerli olmalıdır.

    Set Surucu = FSO.GetDrive("Sürücü Harfi")

    Bu konunun ayrıntılarını "FSO ile sürücü işlemleri" konusuna bırakıp geçiyoruz.


    GetDriveName

    Verdiğiniz bir yol stringi için sürücü harfini içeren bir string döndürür. Verdiğiniz yolun geçerli olması önemli değildir. Ancak sürücü harfinden sonra (:) olmalıdır.

    FSO.GetDriveName("Yol")

    <%
    Response.Write FSO.GetDriveName("z:")
    Response.Write FSO.GetDriveName("z:\")
    Response.Write FSO.GetDriveName("z:/")
    Response.Write FSO.GetDriveName("z:\sfgjcvmnc")
    Response.Write FSO.GetDriveName("z:sfgjcvmnc")
    Response.Write FSO.GetDriveName("z:/sfghdf")
    %>


    Hepsinin çıktısı "z:" olur.

    <%
    Response.Write FSO.GetDriveName(Server.Mappath("/"))
    %>


    Çıktısı "C:" olur.

    NOT : Siz bu şekilde bir yol ifadesi için sürücü harfini aldığınız gibi GetFile ile oluşturulmuş dosya nesnesinin veya GetFolder ile oluşturulmuş klasör nesnesinin Drive özelliği ile de sürücü harfini alabilirsiniz. Ama bu yöntemde yol ifadesi dolayısıyla dosya veya klasör geçerli, yani var olmalıdır.

    <%
    Set Klasor = FSO.GetFolder("C:\Deneme\Metin\")
    Response.Write Klasor.Drive
    %>


    Çıktısı "C:" olur.

    <%
    Set Dosya = FSO.GetFile("C:\Deneme\Metin\index.asp")
    Response.Write Dosya.Drive
    %>


    Çıktısı "C:" olur.


    GetExtensionName

    Verdiğiniz string içinde en son bileşenin uzantısını verir. Verdiğiniz stringin geçerli bir yol ifadesi olması yada dosya uzantısının geçerli bir uzantı olması gerekmez. Kısacası verdiğiniz string içindeki son noktadan sonraki kısmı verir.

    FSO.GetExtensionName("string")

    <%
    Response.Write FSO.GetExtensionName("C:\Deneme\index.asp")
    %>


    Çıktısı "asp"

    <%
    Response.Write FSO.GetExtensionName("C:\Deneme\index.metin")
    %>


    Çıktısı "metin"

    <%
    Response.Write FSO.GetExtensionName("ahmet\mehmet\süleyman.hilmi")
    %>


    Çıktısı "hilmi"

    <%
    Response.Write FSO.GetExtensionName("ahmet\mehmet\süleyman.hilmi.fikri.zikri")
    %>


    Çıktısı "zikri"


    GetFile

    Belirttiğiniz bir dosya için üzerinde işlemler yapılabilen bir dosya nesnesi oluşturur. Dosya geçerli olmalıdır.

    Set Dosya = FSO.GetFile("Dosya Yolu")

    Bu konunun ayrıntılarını "FSO ile dosya işlemleri" konusuna bırakıp geçiyoruz.


    GetFileName

    Verdiğiniz bir string ifadesi içinde ki en son bileşenin uzantısıyla beraber ismini verir. Eğer uzantı yoksa sadece ismini verir. GetBaseName dosya ismini veriyor, uzantısını vermiyordu. GetFileName uzantısıyla beraber dosya ismini verir. Verdiğiniz stringin geçerli bir yol ifadesi olması gerekmez. Bu yöntemde string üzerinde işlem yapar.

    FSO.GetFileName("İfade")

    <%
    Response.Write FSO.GetFileName("C:\Deneme\index.asp")
    Response.Write FSO.GetFileName("C:\Deneme\index.asp\")
    Response.Write FSO.GetFileName("sf4574356754\index.asp")
    %>


    Çıktıları "index.asp" olur.

    <%
    Response.Write FSO.GetFileName("C:\Deneme\index")
    Response.Write FSO.GetFileName("C:\Deneme\index\")
    Response.Write FSO.GetFileName("sf4574356754\index")
    %>


    Çıktıları "index" olur.


    GetFileVersion

    Exe, dll gibi dosya versiyonu bilgisini taşıyan dosyalarda dosyanın sürüm numarasını verir. Verilen dosya yolu ifadesi geçerli olmalıdır. Eğer yol geçerli değilse yada dosya sürüm bilgisi taşımıyorsa boş değer döner.

    FSO.GetFileVersion("Dosya Yolu")

    <%
    Response.Write FSO.GetFileVersion("C:\Program Files\Ahead\Nero\AudioPluginMgr.dll")
    %>


    Benim sistemimde çıktısı "2.0.0.2" şeklinde.

    <%
    Response.Write FSO.GetFileVersion("C:\Program Files\Ahead\Nero\nero.exe")
    %>


    Çıktı "5.5.9.9" şeklinde.


    GetFolder

    Belirttiğiniz bir klasör için üzerinde işlemler yapılabilen bir klasör nesnesi oluşturur. Klasör geçerli olmalıdır.

    Set Klasor = FSO.GetFolder("Klasör Yolu")

    Bu konunun ayrıntılarını "FSO ile klasör işlemleri" konusuna bırakıp geçiyoruz.


    GetParentFolderName

    Verdiğiniz bir yol ifadesi için o yolun en son dosyasının veya klasörünün içinde bulunduğu klasör ismini döndürür. Yol ifadesinin geçerli olması gerekmez.

    FSO.GetParentFolderName("Yol")

    <%
    Response.Write FSO.GetParentFolderName("C:\Metin\Aksu\index.asp")
    Response.Write FSO.GetParentFolderName("C:\Metin\Aksu/index.xghdmhgghf")
    %>


    Her ikisinin de çıktısı "C:\Metin\Aksu" olur.

    <%
    Response.Write FSO.GetParentFolderName("C:\Metin\Aksu")
    Response.Write FSO.GetParentFolderName("C:\Metin\Aksu\")
    Response.Write FSO.GetParentFolderName("C:\Metin\Aksu/")
    %>


    Üçünün de çıktısı "C:\Metin" olur.

    <%
    Response.Write FSO.GetParentFolderName("Giresun\Metin\Aksu")
    Response.Write FSO.GetParentFolderName("Giresun\Metin\Aksu\")
    %>


    Çıktıları "Giresun\Metin" olur.

    Siz bu şekilde bir yol ifadesi için ana dizini aldığınız gibi GetFile ile oluşturulmuş dosya nesnesinin veya GetFolder ile oluşturulmuş klasör nesnesinin ParentFolder özelliği ile de ana dizini alabilirsiniz. Ama bu yöntemde yol ifadesi dolayısıyla dosya veya klasör geçerli, yani var olmalıdır.

    <%
    Set Dosya = FSO.GetFile("C:\Deneme\Deneme.txt\")
    Response.Write Dosya.ParentFolder
    %>


    Çıktısı "C:\Deneme" olur.

    <%
    Set Klasor = FSO.GetFolder("C:\Deneme\Metin")
    Response.Write Klasor.ParentFolder
    %>

    Çıktısı "C:\Deneme" olur.


    GetSpecialFolder

    Vereceğiniz 0,1 veya 2 sayısı için Windows özel dizinlerini döndürür. Bu üç sayı dışında argüman kabul etmez.

    FSO.GetSpecialFolder(sayı)

    0 = "C:\WINDOWS"
    1 = "C:\WINDOWS\system32"
    2 = "C:\WINDOWS\Temp"

    <%
    Response.Write FSO.GetSpecialFolder(1)
    %>


    Çıktısı "C:\WINDOWS\system32" olur.


    GetTempName

    Geçici bir dosya için .tmp uzantılı rastgele bir dosya adı üretir. Dosya ismi başında "rad" sözcüğü bulunur. Bu rastgele uzantılı dosya oluşturulmaz. Sadece dosya adı üretir. Siz bu ismi CreateTextFile ile dosya oluştururken kullanabilirsiniz.

    FSO.GetTempName

    <%
    Response.Write FSO.GetTempName
    %>


    Çıktısı "A9932" kısmı her seferinde değişmek kaydıyla "radA9932.tmp" gibi olur.


    MoveFile

    Verdiğiniz bir veya daha fazla dosyayı belirttiğiniz klasöre taşır.

    FSO.MoveFile KaynakDosya(lar), Hedef

    Kaynak Dosya tek veya joker karakterle belirlediğiniz birden çok dosya, Hedef ise bunların taşınacağı klasördür. Eğer taşımaya çalıştığınız dosyalar hedef klasörde zaten var ise hata verir ve taşınmaz.

    <%
    FSO.MoveFile "C:\*.*", "C:\Deneme"
    'veya
    FSO.MoveFile "C:\*.*", "C:\Deneme\"
    %>


    Her iki kodda C sürücüsündeki tüm dosyaları Deneme klasörüne taşır.

    <%
    FSO.MoveFile "C:\deneme.txt", "C:\Deneme\"
    %>


    C sürücüsündeki "deneme.txt" dosyasını "Deneme" klasörüne aynı isimle taşır.

    <%
    FSO.MoveFile "C:\deneme.txt", "C:\Deneme\index.asp"
    %>


    C sürücüsündeki "deneme.txt" dosyasını "Deneme" klasörüne index.asp ismiyle taşır. Yani farklı kaydetmiş olursunuz.

    CopyFile konusunda okuduğunuz gibi joker karakterleri kullanarak taşınacak dosyalar için farklı seçenekler oluşturabilirsiniz.


    MoveFolder

    Bir veya daha çok klasörü vereceğiniz bir hedef klasöre taşır.

    FSO.MoveFolder TaşınacakKlasör(ler), Hedef

    Bu kodun kullanımında birkaç küçük ayrıntı var. Örneklerle görelim.

    <%
    FSO.MoveFolder "C:\Deneme\a", "C:\Deneme\b\"
    %>


    a klasörünü aynı dizindeki b klasörü içine taşır. Bu işlem için taşınacak kaynak klasörü belirtirken sonuna slash(\) koymuyoruz. Koyarsak yol bulunamadı hatası verir. Taşınacak klasör için bu sınırlama yok. "C:\Deneme\b" yada "C:\Deneme\b\" şeklinde yazabilirsiniz.

    <%
    FSO.MoveFolder "C:\Deneme\a\*", "C:\Deneme\b\"
    %>


    a klasörü içindeki alt klasörleri b klasörüne taşır. a klasörünün kendisi ve içindeki dosyaları ise taşımaz. Tabi yine kaynak klasörü belirtirken sonuna slash koymuyoruz.




  • <%  
    dir = "c:\"
    dosya = "üyeler"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    YeniYol = FSO.BuildPath(dir,dosya)

    %>

    yapıyorum dosya oluşturulmuyor atladığım bir noktamı var..!
    "" işaretinide denedim ""&dir&"" gibi



    < Bu mesaj bu kişi tarafından değiştirildi SaLVaDoR -- 25 Temmuz 2005, 22:22:08 >
  • <%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%> 
    <html>
    <body><%
    dir = server.mappath("dizin")&"\"
    dosya = "1"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set YeniYol = FSO.BuildPath(dir,dosya)
    %></body>
    </html>


    yukarıdaki kodu win2003 serverda çalıştırdığımda "Ulaşmaya çalıştığınız sayfada sorun var ve sayfa görüntülenemiyor." hatası alıyorum bu hata yukarıdaki kodlardanmı kaynaklanıyor?

    not: dizin dosyası dosyanın bulunduğu yolda mevcut.
  • quote:

    Orjinalden alıntı: SaLVaDoR

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%> 
    <html>
    <body><%
    dir = server.mappath("dizin")&"\"
    dosya = "1"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set YeniYol = FSO.BuildPath(dir,dosya)
    %></body>
    </html>


    yukarıdaki kodu win2003 serverda çalıştırdığımda "Ulaşmaya çalıştığınız sayfada sorun var ve sayfa görüntülenemiyor." hatası alıyorum bu hata yukarıdaki kodlardanmı kaynaklanıyor?

    not: dizin dosyası dosyanın bulunduğu yolda mevcut.



    internet explorer da sırasıyla tools/internet options/advanced/show friendly http error massaged daki
    tiki kaldır...ayrıntılı hata mesajı almış olursun bu sayede hatanın nerde olduğu öğrenirsin...




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • pekii, başka bir bilgisayardaki klasör içeriğini nasıl okuyacağız?
    Bu intranet içinde map edilmiş bir PC'de olabilir (T:/ gibi), yahut doğrudan PC'nin ismide girilebilir ( \\pc105) örneğin?

    FSO ile yapamamıştım, buradan okuyunca zaten yalnızca local çalıştığını gördüm. Peki intranet üzerindeki başka bir bilgisayarın?
  • mümkün değil mi? yok mu bileenn
    quote:

    Orijinalinden alıntı: IQt

    pekii, başka bir bilgisayardaki klasör içeriğini nasıl okuyacağız?
    Bu intranet içinde map edilmiş bir PC'de olabilir (T:/ gibi), yahut doğrudan PC'nin ismide girilebilir ( \\pc105) örneğin?

    FSO ile yapamamıştım, buradan okuyunca zaten yalnızca local çalıştığını gördüm. Peki intranet üzerindeki başka bir bilgisayarın?
  • soyturk keske yazıların kaynağını da belirtseydin...
    Bu yazı Metin AKSU'ya ait olupğ Maxiasp, zamanında vbsturk, fsomanual.com gibi çeşitli yerlerde yayımlanmıştır
  • how to?
    quote:

    Orijinalinden alıntı: IQt

    mümkün değil mi? yok mu bileenn
    quote:

    Orijinalinden alıntı: IQt

    pekii, başka bir bilgisayardaki klasör içeriğini nasıl okuyacağız?
    Bu intranet içinde map edilmiş bir PC'de olabilir (T:/ gibi), yahut doğrudan PC'nin ismide girilebilir ( \\pc105) örneğin?

    FSO ile yapamamıştım, buradan okuyunca zaten yalnızca local çalıştığını gördüm. Peki intranet üzerindeki başka bir bilgisayarın?


  • IQt bende fso biraz sorunlu o yüzden bakıp cevap veremiyorum fakat T:/ veya \\pc105 şeklinde deneyip sonuç alabildin mi alamadıysan hata verdi mi
  • yetkilerde/permissionlarda sorun olabilir... Senin IUSR_kullaniciadı nın Başka bir bilgisayara ulaşma yetkisi olmayabilir... Diğer bilgisayardan bunu denemelsin. A bilgisayarından b bilgisayarına girmek için b bilgisayarından a bilgisayarının IUSR_kullanici şeklindeki kullanıcısına en azından okuma yetkisi vermelisin
  • http://www.developersdex.com/asp/message.asp?p=577&r=4264469

    burada seninle aynı soruna sahip bi kullanıcı için cevap verilmiş sanırım
  • hemen inceliyorum o linki, çok teşekkürler..
  • işine yaradı mı? Yaramadıysa bir şekilde ayarlamaya çalışıcam fso yu
  • Ağa bağlı başka bir bilgisayarım daha var. Onda bana share vermiş olduğum bir alana bağlanmaya çalıştım.

    • \\pc105\abc
    • X:\


    ikisinde de "No documentation found" uyarısı veriyor..
    quote:

    Orijinalinden alıntı: tehlike

    işine yaradı mı? Yaramadıysa bir şekilde ayarlamaya çalışıcam fso yu
  • hmm fsoyu yapmaya çalışayım bende de bir bilgisayar daha var bi deneyelim bakalım

    Bu arada bilgisayarların ikisi de xp mi? Biri xp biri 98 sew sorun yaşayabiliyor normal olarak ki asp de de yaşaması doğaldır



    < Bu mesaj bu kişi tarafından değiştirildi tehlike -- 10 Ağustos 2005, 18:22:53 >
  • abi no documentation found hatası???

    sen sanırım hazır bir script kullandın doğru mu?
  • <%
    set fso = server.createobject("scripting.filesystemobject")
    Set Klasor = FSO.GetFolder("\\tehlike\Muzikler")
    Set Dosyalar = Klasor.Files
    for each dosya in dosyalar
    response.write dosya.name
    next%>

    dostum bak ben böyle bi kod kullandım ve çalıştı... Muzikler klasorunu paylaşıma açtım... ve içine 2 dosya attım.. Dosyalar gözüktü
    Ama direkt \\tehlike olarak çağırınca hata verdi
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.