Hur skriver man för att kolla efter en speciell fil i alla mappar som finns.
Jag har en fil som ska kolla det å alla mappar ligger i samma mapp som den filen.
Vet hur man kollar i en mapp men inte alla. Tacksam för hjälp.
Leta fil
17 svar · 433 visningar · startad av Asa
Hämta alla mappnamn med fso, placera dem i en array, loopa sedan igenom arrayen och placera in mappnamnet i söksträngen för i vilken mapp som du skall söka i. Borde fungera. :)
Hmm - ska testa!
Men i vilken mapp du ska söka? Om det finns ex 6 mappar ska den kolla i alla mappar och om en fil finns så ska en popup komma fram för varje fil.
Palleman skrev:
...söksträngen för i vilken mapp som du skall söka i.
Den ska kolla i alla mappar och för varje fil som stämmer ska en popup komma fram.
Ajdå - blev dubbelpostning :/
Ok, här kommer lite snabbkod som jag slängde ihop på en höft.
Den ger inga popups men resten fungerar som det ska, popupsen kan du ju kanske trigga igång själv i koden. :)
<%
strSearchFile = "min-fil.asp" '<--## Filen du söker efter
MyPath = Server.MapPath(".")
Set fso = CreateObject("Scripting.FileSystemObject")
Set gfo = fso.GetFolder(MyPath)
Set drive = gfo.Subfolders
For Each Folder in drive
strFolders = strFolders & Folder.Name &","
Next
arrFolders = Split(strFolders, ",",-1, 1)
For Each FolderName in arrFolders
If fso.FileExists(MyPath &"/"& FolderName &"/"& strSearchFile) Then
Response.Write ""&_
"<b>"& strSearchFile &"</b><br>Denna filen finns i mappen "&_
"<a href="& MyPath &"/"& FolderName &"/"& strSearchFile &" target=_blank>"& FolderName &"</a><br><br>"
End If
Next
Set fso = Nothing
Set gfo = Nothing
Set drive = Nothing
%>
Tackar! Ska prova med den koden :)
Nu till nästa problem! Säkert enkelt men har testat lite olika men inte lyckats. Den laddar hela tiden om popupsidan.
Den ska dock öppnas en gång och om man stänger ner den ska den öppnas i en ny popup om filen är ändrad efter man stängt ner popupen. Hmm - förklatrar kanske dåligt.
<%strSearchFile = Session("user") & ".txt" '<--## Filen du söker efter
MyPath = Server.MapPath(".")
Set fso = CreateObject("Scripting.FileSystemObject")
Set gfo = fso.GetFolder(MyPath)
Set drive = gfo.Subfolders
For Each Folder in drive
strFolders = strFolders & Folder.Name &","
Next
arrFolders = Split(strFolders, ",",-1, 1)
For Each FolderName in arrFolders
Visad=False
If fso.FileExists(MyPath &"/"& FolderName &"/"& strSearchFile) Then%>
<html>
<head>
<meta http-equiv="refresh" content="20; url=messcheck.asp">
<link rel="stylesheet" href="style.css" type="text/css">
<script language=javascript>
<!--
window.open("privat.asp?namn=<%=FolderName%>","Message","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
//-->
</script>
</head>
<body>
</body>
</html>
<%Else%>
<html>
<head>
<meta http-equiv="refresh" content="20; url=messcheck.asp">
</head>
<body>
</body>
</html>
<%End If
Next
Set fso = Nothing
Set gfo = Nothing
Set drive = Nothing%>
Hmm.. vill du ha 1 popfönster för varje funnen fil eller?
Ok, då måste du tilldela olika namn på popupen i din loop.
Din popup heter i ditt exempel Message, sätt in <%= FolderName %> där istället så får du unika namn på varje popup vilket borde fixa problemet...
ex. window.open("privat.asp?namn=<%= FolderName %>","<%= FolderName %>"," width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
Detta är nu gjort men popupen laddas om hela tiden! Måste kolla när filen är ändrad lr nåt för att den inte ska laddas om - eller?
Nåt förslag?
Hmm.. när jag testar fungerar det bra.
Jag får en ny popup varje gång den påträffar filen jag söker efter..
Visst ja- har denna kod på sidan som kollar hela tiden!
<iframe src="messcheck.asp" name="messcheck" style="display:none;"></iframe>
Får du samma fel som jag då?
..i´m lost. Hur menar du nu?
Hehe - jo på sidan mess.asp där allt från textfilen visas har jag denna iframe. Messcheck.asp kollar hela tiden efter filen. Å om den finns kommer popupen. Sen laddas för mig popupen om hela tiden.
Man kanske måste i messcheck.asp kolla när filen är ändrad lr senast använd å jämföra med skapandedatum?
OBS - Chatten e långt ifrån klar!
När man loggar in skapas en mapp med det namnet å i den mappen skapas alla chatfiler. Alltså klickar man på Kalle så skapas Kalle.txt i sin mapp.
Hur plockar jag ut rader som ligger mellan [Start] och [End] i detta ex:
[Start] startad 13:25 med Lucifer
13:27 | <b>Åsa</b> - Hmm
13:33 | <b>Åsa</b> - Jaha?
[End]
Min kod som skriver ut allt nu - ska bryta rad oxå precis som nedanstående kod gör:
set fil = fso.OpenTextFile(Server.Mappath(Session("user") & "/" & Session("namn") & ".txt"), 1 )
arrFsoLines = Split(fil.ReadAll, vbcrlf)
For i = ubound(arrFsoLines) To 0 step -1%>
<%=arrFsoLines(i)%><br>
<%Next
fil.Close
Nån som har nån aning om inlägget jag posta före detta?