15. juni 2007 - 17:04Der er
56 kommentarer og 2 løsninger
FolderExists funktion
Jeg har lavet en FolderExists som ikke helt virker som den skal. Det meningen at den skal søge i en specifik mappe og kun den mappe, den skal ikke søge i mappens undermapper(s) undermapper osv osv.
Lige nu virker den sådan her, jeg har en mappe der hedder hilsoe og i den er der to undermapper og i en af de to mapper har jeg en mappe der hedder test.
Når jeg prøver og lave en søgening på hilsoe kommer følgende resultat "Mappen blev ikke findet!", søger jeg derimod på mappen test så før jeg følgende resultat "Mappen blev fundet!" det er jo ikke iorden.
<% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder") strPath = "" 'strPath = "...\Inetpub\"
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 %>
det har jeg gjort nu og så får jeg denne her fejl:
Server.MapPath() error 'ASP 0172 : 80004005'
Invalid Path
/bestil.asp, line 23
The Path parameter for the MapPath method must be a virtual path. A physical path was used.
22) Set objFSO = CreateObject("Scripting.FileSystemObject") 23) If objFSO.FolderExists(Server.Mappath(Request.ServerVariables("APPL_PHYSICAL_PATH") & strSearch )) Then 24) 'If objFSO.FolderExists(Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch) Then 25) Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch
<% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder") Server.Mappath("./" & strSearch) 'strPath = "...\Inetpub\"
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath(Request.ServerVariables("APPL_PHYSICAL_PATH") & strSearch )) Then 'If objFSO.FolderExists(Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch) Then Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch 'Response.Write "Mappen blev fundet!" 'Else 'Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
<% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder")
'strPath = "...\Inetpub\"
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath("./" & strSearch)) Then Response.Write "Mappen blev fundet!" Else Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
2) <% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder")
'strPath = "...\Inetpub\"
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath("./" & strSearch)) Then 'Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch Response.Write "Mappen blev fundet!" Else Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
3) Jeg får ikke noge fejlmeddelse, den søger fint. Men når jeg søger på 'test' som er en undermappe til hilsoetest så kommer beskeden "Mappen blev fundet!", søger jeg på hilsoe.dk får jeg beskeden "Mappen blev ikke fundet!"
nej jeg vil søge på mappenavne som ligger i C:\Inetpub og ikke flere led ud.
bruger jeg Server.Mappath("../../../" & strSearch) så får jeg denne her fejl Server.MapPath() error 'ASP 0175 : 80004005'
Disallowed Path Characters
/bestil.asp, line 23
The '..' characters are not allowed in the Path parameter for the MapPath method.
22) Set objFSO = CreateObject("Scripting.FileSystemObject") 23) If objFSO.FolderExists(Server.Mappath("../../../" & strSearch)) Then 24) 'Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch 25) Response.Write "Mappen blev fundet!"
bruger jeg Server.Mappath("/" & strSearch) så jeg samme resultat som da jeg startede spørgsmålet.
Din rod-mappe til IIS, er "C:\Inetpub". Normalt bruger man "C:\Inetpub\wwwroot" som rod-mappen.. Det er grunden til at jeg skrev det sådan, i 15/06-2007 19:35:28..
det vil jeg ikke, jeg vil undersøge om test ligger i C:\inetpub ikke om den ligger i C:\inetpub\hilsoe.dk\hilsoetest\billeder eller c:\inetpub\hilsoe.dk\hilsoeroot osv osv osv
når jeg bruger denne her 'Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch' kan jeg se at der stadig bliver søgt i c:\Inetpub\hilsoe.dk\hilsoetest
<% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder")
'strPath = "...\Inetpub\"
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath("/" & strSearch)) Then Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH")&strSearch 'Response.Write "Mappen blev fundet!" 'Else 'Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
<% If Request.Form("folder") <> "" Then strSearch = Request.Form("folder")
'strPath = "...\Inetpub\"
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath("/" & strSearch)) Then Response.Write "Mappen blev fundet!" Else Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.Mappath("/" & strSearch)) Then Response.Write "Mappen blev fundet!" Else Response.Write "Mappen blev ikke fundet!" End If Set objFSO = Nothing End If %>
Nu ved jeg snart ikke hvordan jeg skal forklare hvad det er jeg vil. jeg vil IKKE!!!!!!!!!!!!!!!!!! søge i C:\Inetpub\hilsoe.dk\hilsoetest\ jeg vil KUN søge i C:\Inetpub\, det betyder jo at jeg 2 el. 3 nivuaer tilbage af stien
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.