|
|
#1 (permalink) |
|
Mesaj: n/a
|
klasör içindeki dosya sayısını bulmak ?
Merhaba
ASP ile filesystemobject kullanarak bir klasör içindeki dosya saysısını ve klasör sayısını bulabiliyorum ama bu klasörler içindeki dosya sayılarını veya klasör sayılarını alamıyorum aslında döngü içine aynı kodu kullanarak bunu alabilirim ama bir alty seviyede bunu tekrar yapmam lazım ve iç içe kaç klasör olacağı önceden belli olmadığı için bu mantık işimi görmüyor. acilen tavsiyelerinizi bekliyorum şimdiden teşekkürler. |
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 22.06.2001
Yer: Antalya
Yaş: 38
Mesaj: 531
|
Re: klasör içindeki dosya sayısını bulmak ?
söyle bir kod varmış işine yararmı?
http://www.7host.com/example_detail.asp?example_id=7 |
|
|
|
|
|
#4 (permalink) |
|
Mesaj: n/a
|
Re: klasör içindeki dosya sayısını bulmak ?
ikinizede teşekkürler
blurise Recursive bir algoritma ile bunu yaparsam çok mu yavaş olur www.debya.com daki kategori sistemini değiştireceğim ve 25-30 ana kategori altında üçer beşer alt kategoriler olacak ama dosya sayısı biraz fazla olacak yani her katagoride enaz 100-1000 arası resim olacak bunu sırf şu kadar kategoride şu kadar yapboz var demek için yapacağım acaba değmez mi ? |
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,912
|
Re: klasör içindeki dosya sayısını bulmak ?
recursive algoritmanın yavaşlığı sadece dosya ve alt klasörlerin yoğunluğuna bağlı olarak yavaşlayacaktır.
şöyle bir yöntem tavsiye etsem: bu dosya adlarını bir XML dosyasında (veritabanı da olabilir) tutmayı denesen, ve her dosya güncellemesi (dosya ekleme/silme) durumları için bir recursive fonksiyon tanımlayıp bu dosya adlarını tutan XML'i güncellesen. bunun için yol gösterecek algoritma hakkında yardımcı olabilirim... aşağıdaki kod, bu .ASP'nin yer aldığı klasör ve alt klasörlerin içeriğini görüntüler : Kod:
<%@Language="VBScript"%> <%Option Explicit%> <%Response.Buffer = True%> <% server.ScriptTimeOut = 60 On Error Resume Next Dim strRootFolder, intLenRootFolder, objFSO, strXmlFile, strVbCrLf, strVbTab, numTree, objFile strVbCrLf = VbCrLf strVbTab = VbTab numTree = 0 strRootFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") intLenRootFolder = Len(strRootFolder) Set objFSO = server.CreateObject("Scripting.FileSystemObject") response.Write(strXmlFile) Call TraverseSite(strRootFolder,numTree) Sub TraverseSite(strFolder,thisTree) strXmlFile = "" Dim objFolder, objSubFolder, objSubFile, i Dim objThisFolder, objthisFile, strURL, strFolderURL Set objFolder = objFSO.GetFolder(strFolder) Set objSubFolder = objFolder.SubFolders Set objSubFile = objFolder.Files For i = 1 To thisTree strXmlFile = strXmlFile & " " Next strXmlFile = strXmlFile & chr(187) & "-" strFolderURL = Mid(objFolder.Path, intLenRootFolder, Len(objFolder.Path)) strFolderURL = Replace(strFolderURL, "\", "/") If thisTree > 0 Then strXmlFile = "<font color=red>" & strXmlFile & objFolder.Name & "</font>" & "<br>" & strVbCrLf response.Write(strXmlFile) End If strXmlFile = "" If Not IsEmpty(objSubFolder) Then For Each objThisFolder in objSubFolder Call TraverseSite(objThisFolder.Path,thisTree + 1) Next End If If Not IsEmpty(objSubFile) Then For Each objthisFile in objSubFile For i = 0 To thisTree + 1 strXmlFile = strXmlFile & " " Next strXmlFile = strXmlFile & chr(155) & "-" strURL = Mid(objthisFile.Path, intLenRootFolder, Len(objthisFile.Path)) strURL = Replace(strURL, "\", "/") strXmlFile = strXmlFile & objthisFile.Name & "<br>" & strVbCrLf Next response.Write(strXmlFile) strXmlFile = "" End If strXmlFile = "" Response.Flush End Sub Set objFSO = Nothing %>
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,275
|
Re: klasör içindeki dosya sayısını bulmak ?
Ben zamanında şöyle bir şey yazmıştım;
Kod:
'//***************************************************/ '// Ferruh Mavituna | freelance Designer & Developer '// ferruh@mavituna.com | http://ferruh.mavituna.com '// Simple site Map Maker func ! '//***************************************************/ Dim SitePath 'SitePath = server.Mappath("../../") SitePath = server.Mappath("/") Response.Write "<h1>"" & SitePath & "" Folders</h1>" '// Call Tree TreeList SitePath,SitePath,0 '//***************************************************/ '// Main Func. ! '//***************************************************/ Function TreeList(byval SitePath,byval Folders,byval sublevel) Dim FSO, FolderName, tmpstr, i, Subcount, tmpName Set FSO = CreateObject("Scripting.FileSystemObject") Set Folders=FSO.GetFolder(Folders) '// Loop Folders For Each FolderName In Folders.subfolders tmpName = Right(FolderName,Len(FolderName)-Len(SitePath)-1) Subcount = FolderName.subfolders.count '// Levels tmpstr="" For i=1 To sublevel tmpstr = tmpstr & " . " Next '// Print Response.Write tmpstr & tmpName & "<br />" & vbNewline '// Call this func. If Subcount>0 Then TreeList SitePath, FolderName, sublevel+1 '// Flush ! 'Response.Flush Next '// Kill Set FSO=Nothing Set Folders=Nothing End Function
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site! |
|
|
|
|
|
#9 (permalink) |
|
Mesaj: n/a
|
Re: klasör içindeki dosya sayısını bulmak ?
soul kod için teşekkürler bunu heman arşivime ekledim
bu konu dışında ama ayrı bir başlık açmaya değiermi karar veremediğim için bir şey sormak istiyorum sitemdeki resimleri kendimce basit önlemlerle koruyorum ama rahatlıkla alınabilir . sormak istediğim bedava hosting veren bazı sitelerin yaptığı gibi resimlere benim dışımda bir siteden kullanılmasını nasıl önleyebilirim (server a müdahle şansın yok ASP veya ASP.net ile mümkünmüdür ?) ? veya başka bir önerisi olan varmı ? |
|
|
|
#10 (permalink) |
|
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,275
|
Re: klasör içindeki dosya sayısını bulmak ?
ASP ile direk resmi bastırabilirsin;
bir zaman yazdığım bir kod; Kod:
'// Show Img Function fm_ASPasImage(byVal File) Dim XchngBanner If NOT Instr(File,":") Then File = server.Mappath(File) Set XchngBanner = server.CreateObject("ADODB.Stream") XchngBanner.Type = 1 XchngBanner.Open XchngBanner.LoadFromFile File Response.ContentType = "image/gif" Response.BinaryWrite XchngBanner.Read() XchngBanner.Close : Set XchngBanner = Nothing End Function Ondan sonra da kontrol olarak refererı sen olmayanlara resmi göstermezsin. Ama her rsmi bu şekilde vermen gerekir. Apache serverlarda özellikle bu çok rahat bir işlem server erişimin olmadığından bu şekilde çok zahmetli olacaktır.
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site! |
|
|
|
Zoque'a hoşgeldiniz!