Avatar billede thomasmyg Nybegynder
13. juni 2007 - 19:41 Der er 38 kommentarer og
1 løsning

søg efter mappenavn på lokal server

Kan man med asp lave en funktion som søger efter et mappenavn på en web server.
Avatar billede w13 Novice
13. juni 2007 - 19:47 #1
Ja, det kan man skam :)

<%strSearch = "mappe1"

strPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
Set objFolder = objFile.ParentFolder
For Each subfolder In objFolder.SubFolders
    If subfolder.name = strSearch Then
        'gør noget
    End If
Next
Set objFS = Nothing%>
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 19:56 #2
lad os sige at jeg har en form hvor man fx. skriver test og så søger i en mappe om den eksistere, hvordan skal jeg så bruge den funktion?
Avatar billede w13 Novice
13. juni 2007 - 20:02 #3
<form action="?search=true" method="post">
  Mappenavn: <input type="text" name="folder"><br>
  Sti: <input type="text" name="path"><br>
  <input type="submit" value="Search">
</form>

<%If Request.Querystring("search") Then
  strSearch = Request.Form("folder")
  strPath = Request.Form("path")

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  End If
  Set objFSO = Nothing
End If%>
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 20:21 #4
formen skal søge i den samme mappe altid og det skal kun være muligt at skrive et navn man vil søge på
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 21:56 #5
det var ikke meget hjælp der var og hente her.
Avatar billede w13 Novice
13. juni 2007 - 23:02 #6
Jamen så er det bare sådan her:
--------------------------------------
<form action="?search=true" method="post">
  Navn: <input type="text" name="folder"><br>
  <input type="submit" value="Search">
</form>

<%If Request.Querystring("search") Then
  strSearch = Request.Form("folder")
  strPath = ""

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  End If
  Set objFSO = Nothing
End If%>
---------------------------------------
Lige nu er variablen strPath lig med "", men hvis du en dag vil ændre mappen, som der søges i, kan du bare skrive mappen heri.
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:14 #7
ok så, forklar mig lige hvorfor jeg bliver sendt til min forside når jeg har søgt?
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:16 #8
og en anden ting, uanset om mappen eksistere så kommer der til at stå det her i adresselinjen: default.asp?search=true
Avatar billede w13 Novice
13. juni 2007 - 23:20 #9
Hvad hedder din søgefil?
Du skal rette dette:
<form action="fil.asp?search=true" method="post">
Avatar billede w13 Novice
13. juni 2007 - 23:21 #10
Ja, der skal stå default.asp?search=true i adresselinjen. Det fortæller koden, at der skal søges af asp-filen.
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:26 #11
jeg har ikke lavet en en søgefil, jeg bruger samme fil som formen er i.
Avatar billede w13 Novice
13. juni 2007 - 23:27 #12
ja, hvad hedder den fil?
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:29 #13
filen hedder bestil men jeg bruger case i min tabel så filen kommer frem på denne her måde default.asp?side=bestil
Avatar billede w13 Novice
13. juni 2007 - 23:30 #14
Hmmm.. ok, så du bruger allerede querystring. Så brug i stedet:
---------------------------------------
<form name="foldersearch" action="?bestil" method="post">
  Navn: <input type="text" name="folder"><br>
  <input type="submit" name="submit" value="Search">
</form>

<%If Request.Form("submit") = "submit" Then
  strSearch = Request.Form("folder")
  strPath = ""

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  End If
  Set objFSO = Nothing
End If%>
Avatar billede w13 Novice
13. juni 2007 - 23:31 #15
<form name="foldersearch" action="?bestil" method="post">
skal selvfølgelig være:
<form name="foldersearch" action="?side=bestil" method="post">
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:33 #16
nu sker der så ikke noget uanset om mappe findes eller ej.
Avatar billede w13 Novice
13. juni 2007 - 23:35 #17
Ah, ja.
<%If Request.Form("submit") = "submit" Then
skal være:
<%If Request.Form("submit") = "search" Then
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:41 #18
der sker stadig ikke noget, vi er enige om det skal være sådan her ik'?

<form name="foldersearch" action="?side=bestil" method="post">
  Søg: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" value="Søg">
</form>

<%
If Request.Form("submit") = "search" Then
  strSearch = Request.Form("folder")
  strPath = "c:\Inetpub\"

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  End If
  Set objFSO = Nothing
End If
%>
Avatar billede w13 Novice
13. juni 2007 - 23:42 #19
Umiddelbart ser det rigtigt ud. Måske behøver du ikke:
strPath = "c:\Inetpub\"
Så du kan prøve at rette det til:
strPath = ""

Prøv også:
-----------------------------------
<form name="foldersearch" action="?side=bestil" method="post">
  Søg: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" value="Søg">
</form>

<%
If Request.Form("submit") = "search" Then
  strSearch = Request.Form("folder")
  strPath = "c:\Inetpub\"

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  Else
      Response.Write "Mappen blev ikke fundet!"
  End If
  Set objFSO = Nothing
End If
%>
Avatar billede w13 Novice
13. juni 2007 - 23:43 #20
Med den sidste kode, jeg skrev, fortæller den os også, hvis der IKKE blev fundet nogen mappe. Hvis den stadig intet skriver, så ved vi, at den slet ikke går ind i if-sætningen.
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:47 #21
den skriver stadig ikke noget
Avatar billede w13 Novice
13. juni 2007 - 23:55 #22
Hov, nej, jeg så ikke, du havde rettet submittens value til Søg. Med følgende kode, er det ligemeget, hvad du kalder den:
--------------------------------------
<form name="foldersearch" action="?side=bestil" method="post">
  Søg: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" value="Søg">
</form>

<%
If Request.Form("submit") <> "" Then
  strSearch = Request.Form("folder")
  strPath = "c:\Inetpub\"

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
      Response.Write "Mappen blev fundet!"
  Else
      Response.Write "Mappen blev ikke fundet!"
  End If
  Set objFSO = Nothing
End If
%>
Avatar billede thomasmyg Nybegynder
13. juni 2007 - 23:59 #23
der bliver stadig ikke skrevet noget, hverken Mappen blev fundet!, eller Mappen blev ikke fundet!
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 00:06 #24
smutter i seng, vender tilbage i morgen eller så snart derefter du har svaret.
Avatar billede w13 Novice
14. juni 2007 - 00:11 #25
Ahr, der mangler også lige et name på submit-knappen:
<input type="submit" name="submit" value="Søg">
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 18:49 #26
det hjælper ikke meget at give knappen et navn.
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 18:58 #27
Jeg får derimod denne her fejl

Server.MapPath() error 'ASP 0173 : 80004005'

Invalid Path Character

/bestil.asp, line 22

An invalid character was specified in the Path parameter for the MapPath method.

21) Set objFSO = CreateObject("Scripting.FileSystemObject")
22) If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
23) Response.Write "Mappen blev fundet!"
Avatar billede w13 Novice
14. juni 2007 - 19:07 #28
Hvad skriver du i strPath?
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 19:11 #29
strPath = "c:\Inetpub\"
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 19:12 #30
jeg har lige fjernet det imellem " " og nu virker det
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 19:13 #31
næsten, jeg får af vide at mappen ikke findes ved at søge på en navn der ikke er der, men hvis mappen findes kommer der ikke nogen besked om det.
Avatar billede w13 Novice
14. juni 2007 - 19:29 #32
Ok, smid lige hele koden igen.
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 20:02 #33
<form name="foldersearch" action="?side=bestil" method="post">
  søg: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" name="submit" value="Søg">
</form>

<%
If Request.Form("submit") <> "" Then
  strSearch = Request.Form("folder")
  strPath = ""

  Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists(Server.MapPath(Request.ServerVariables("PATH_INFO")&strPath)) Then
        Response.Write "Mappen blev fundet!"
    Else
        Response.Write "Mappen blev ikke fundet!"
    End If
  Set objFSO = Nothing
End If
%>
Avatar billede w13 Novice
14. juni 2007 - 20:18 #34
Følgende er afprøvet og virker:
--------------------------------
<form name="foldersearch" method="post">
  søg: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" name="submit" value="Søg">
</form>

<%
If Request.Form("folder") <> "" Then
  strSearch = Request.Form("folder")
  strPath = ""

  Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists(Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch) Then
        Response.Write "Mappen blev fundet!"
    Else
        Response.Write "Mappen blev ikke fundet!"
    End If
  Set objFSO = Nothing
End If
%>
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 20:22 #35
ja det virker, men kan det ikke lade sig gøre at den kun søger i mappen og ikke søger i mappernes undermapper?
Avatar billede w13 Novice
14. juni 2007 - 20:37 #36
Den burde ikke kunne søge i mappernes undermapper. Er du helt sikker?
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 20:38 #37
prøver lige igen
Avatar billede thomasmyg Nybegynder
14. juni 2007 - 20:43 #38
ok det er lidt mærkeligt det her, hvis jeg søger på en mappe som ligger i roden skal kunne mappen ikke findes, men søger jeg på en undermappe så kan mappen godt findes.
Avatar billede thomasmyg Nybegynder
24. juni 2007 - 23:54 #39
har fået det til og virke, koden kommer her:

<form name="foldersearch" method="post">
  Sub-mappe: <input type="text" name="folder">
  mappe<input name="path" type="hidden" value="mappe">&nbsp
  <input type="submit" name="submit" value="Søg">
</form>
<%
If Request.Form("folder") <> "" Then
  strSearch = Request.Form("folder") & "mappe"
 
  Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists("C:\Inetpub\" & strSearch) Then
        Response.write "<font size='2px' color='red'><b>" & Request.Form("folder") & "mappe er optaget!</b></font>"
    Else
        Response.write "<font size='2px' color='green'><b>" & Request.Form("folder") & "mappe er ledigt!</b></font><br /><form name='bestilsub' action='default.asp?side=bestilsub' method='post'><input name='subname' type='hidden' value=" & Request.Form("folder") & " <br /> <input type='submit' name='bestilsub' value='bestil' /></form>"
    End If
  Set objFSO = Nothing
End If
%>
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