Avatar billede bobbedude Nybegynder
03. september 2002 - 09:54 Der er 6 kommentarer og
1 løsning

Scripting.FileSystemObject

når jeg kører det her sker der ikke en pind, scriptet timer bare ud selv om der kun er en folder med 2 sub folder.


<%

Set objSFSO = Server.CreateObject("Scripting.FileSystemObject")



sub displayFolders(objFolder, bolRecurseDirectories, level)
                 
If Not Left(objFolder.Name,1) = "_" then
  'Recurse through the folder's subdirectories if needed
  If bolRecurseDirectories then
    For Each objSubFolder in objFolder.SubFolders
     
      dir1= replace(objFolder,rodbillede,"")
      dir2= replace(dir1,"\","/")
      FolderName = dir2 &"/"& objSubFolder.Name
      FolderName2 = objSubFolder.Name
         
      response.write FolderName2 &"<br>"
     
      'Her kommer den ikke videre START
     
      strSearchText = "a"
         
          For Each objFile in objFolder.Files
         
          Set objTextStream = objSFSO.OpenTextFile(objFile.Path,1)
         
          strFileContents = objTextStream.ReadAll

    If InStr(1, strFileContents, strSearchText, 1) then

      Response.Write "<A HREF=""/" & objFile.Name & _

          """>" & objFile.Name & "</A><BR>"

      bolFileFound = True

    End If

    objTextStream.Close
    Next
   
'Her kommer den ikke videre SLUT
     
      displayFolders objSubFolder, bolRecurseDirectories, level+1
    Next
    End If
set rs = nothing
End If
end sub

'Get the physical path of the root folder


strRootFolder = Server.MapPath("./demo/")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strRootFolder)

displayFolders objFolder, true, 0
%>
Avatar billede solle Nybegynder
03. september 2002 - 11:31 #1
Har du binære filer i din mapper?
Avatar billede solle Nybegynder
03. september 2002 - 11:31 #2
Denne rutine kan sagtens fremkalde et timeout hvis den prøver at læse en binær fil .. har selv prøvet det en del gange!

                For Each objFile in objFolder.Files
                    Set objTextStream = objSFSO.OpenTextFile(objFile.Path,1)
             
                    strFileContents = objTextStream.ReadAll

                    If InStr(1, strFileContents, strSearchText, 1) then
                        Response.Write "<A HREF=""/" & objFile.Name &""">" & objFile.Name & "</A><BR>"
                        bolFileFound = True
                    End If
                    objTextStream.Close
                Next
Avatar billede bobbedude Nybegynder
03. september 2002 - 11:43 #3
det er billeder jpg - psd osv der er i mappen.
har du et forslag til hvordan jeg løser det ??
Avatar billede solle Nybegynder
03. september 2002 - 12:19 #4
Hvad bruger du din "søgning" til??

If InStr(1, strFileContents, strSearchText, 1) then
Avatar billede bobbedude Nybegynder
03. september 2002 - 12:30 #5
jeg har en side med en form på hvor man kan taste en streng der skal søges på.
Avatar billede solle Nybegynder
03. september 2002 - 12:43 #6
Her går jeg ind og tjekker om filen er et tekst dokument, og om størrelsen er størrer end eller lige med 1 (altså størrer end 0) ... hvis tekst-filen er det, så åbner den filen, leder efter søgestrengen, og viser filnavnet hvis det fandtes!!!!!! Den søger ikke i JPG filer ol.

For Each objFile in objFolder.Files
    if ((lcase(trim(objFile.type))="text document") AND (objFile.size>=1)) then
        Set objTextStream = objFSO.OpenTextFile(objFile.Path,1)   
        strFileContents = objTextStream.ReadAll

        If InStr(1, strFileContents, strSearchText, 1) then
            Response.Write "<A HREF=""/" & objFile.Name &""">" & objFile.Name & "</A><BR>"
            bolFileFound = True
        End If
        objTextStream.Close
    end if
Next
Avatar billede bobbedude Nybegynder
03. september 2002 - 13:59 #7
Jeg lavede denne

<%
strSearchText = Request.Form("sog")
sub displayFolders(objFolder, bolRecurseDirectories, level)
            'response.write("<b>"&objFolder.Name&"</b><br>") 
               
If not Left(objFolder.Name,6) = "_thumb" then


  'Recurse through the folder's subdirectories if needed
  If bolRecurseDirectories then
 
    For Each objSubFolder in objFolder.SubFolders
 
      Set fso = Server.CreateObject("Scripting.FileSystemObject")
      set folder = fso.Getfolder(objFolder)
      set files = folder.files
      for each f in files
      temp = instr(f.name,".\")
     
     
     
If Right(lcase(f.name),4) = ".jpg" OR Right(lcase(f.name),4) = ".gif"  OR Right(lcase(f.name),4) = ".psd" OR Right(lcase(f.name),4) = ".pdf" OR Right(lcase(f.name),4) = ".tif" Then     
     
      VarString = f.name
      If InStr(1,VarString,strSearchText,1) > 0 then
     
      response.write objFolder.Name &"/"&f.name&"<br>"
     
end if
    end if
      next

    displayFolders objSubFolder, bolRecurseDirectories, level+1
    Next
    End If
set rs = nothing
End If
end sub

'Get the physical path of the root folder
strRootFolder = Server.MapPath("./demo/")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strRootFolder)

displayFolders objFolder, true, 0
%>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester