Avatar billede ingeman Mester
24. maj 2003 - 15:20 Der er 14 kommentarer og
1 løsning

Selectbox der returnerer foldernavne

På min server har jeg en folder som hedder \zfax\users
I users folderen er der forskellige brugere(foldere).
Jeg mangler en selecbox som returner navnene(foldere).
Kode skal kunne finde ud af hvor det ligger (c:,d:,e:)
Avatar billede mortrr Praktikant
24. maj 2003 - 16:39 #1
Mener du en selectbox som indeholder alle mapper under en givet mappe? Rekursivt?

Jeg skriver normalt asp i jscript, men du kan nok se idéen her:
<%
fso=Server.CreateObject("Scripting.FileSystemObject");
ltReg=new RegExp("<","g");
gtReg=new RegExp(">","g");
qReg =new RegExp("\"","g");

function buildSelect(foldspec) {
    var bsFold
    var bsSubs
    bsFold=fso.GetFolder(Server.MapPath(""+foldspec));
    bsSubs = new Enumerator(bsFold.SubFolders);
    %><OPTION value="<%=Server.URLEncode(foldspec)%>"><%=foldspec%><%
    for (; !bsSubs.atEnd(); bsSubs.moveNext()) {
        cDir=bsSubs.item();
        cName = ""+cDir.Name;
        if (cName.charAt(0)!="_") {
            buildSelect(foldspec+cName+"/");
        }
    }
}

%><SELECT id=select1 name=cPath onchange="setPath(this.value)" class=Ismaller><%
buildSelect("/");
%></SELECT><%

Ellers må du sige til.
Avatar billede ingeman Mester
24. maj 2003 - 17:27 #2
Ja en selectbox - men navnene på mapper under en givet mappe.
Hvor skal \zfax\users puttes ind ?
Avatar billede mortrr Praktikant
24. maj 2003 - 17:35 #3
Så må jeg hellere skrive den fuldt ud.

Du vil altså kun have mapperne direkte under en given mappe?
Hvilket sprog? vbscript eller jscript?
Avatar billede ingeman Mester
24. maj 2003 - 17:40 #4
Du siger jscript du mener javascript - sprog - hvad der nemest for dig.
Avatar billede mortrr Praktikant
24. maj 2003 - 17:50 #5
Jeg mener faktisk jscript.
Det er hvad Microsoft kalder den javascript variant man bruger til at skrive asp-filer.
<%@language=jscript%>


Nå - men hvis du skal bruge det i en asp-fil hvor resten er vbscript, så bør det jo være vbscript.
Men her er en hurtig omskrivning af ovenstående:

fso=Server.CreateObject("Scripting.FileSystemObject");
function buildSelect(foldspec) {
    var bsFold
    var bsSubs
    bsFold=fso.GetFolder(foldspec);
    bsSubs = new Enumerator(bsFold.SubFolders);
    for (; !bsSubs.atEnd(); bsSubs.moveNext()) {
        cDir=bsSubs.item();
        cName = ""+cDir.Name;
        %><OPTION value="<%=cName%>"><%=cName%><%
    }
}
%><SELECT name=userFolder><%
buildSelect("c:\\zfax\\users");
%></SELECT><%
Avatar billede ingeman Mester
24. maj 2003 - 18:17 #6
Det kan jeg ikke få til at virke.

<%

Dim Cname
fso=Server.CreateObject("Scripting.FileSystemObject");
function buildSelect(foldspec) {
    var bsFold
    var bsSubs
    bsFold=fso.GetFolder(foldspec);
    bsSubs = new Enumerator(bsFold.SubFolders);
    for (; !bsSubs.atEnd(); bsSubs.moveNext()) {
        cDir=bsSubs.item();
        cName = ""+cDir.Name;
        %><OPTION value="<%=cName%>"><%=cName%>
<%
    }
}
%>
<SELECT name=userFolder><%buildSelect("c:\\zfax\\users")%>
</SELECT>
Avatar billede mortrr Praktikant
24. maj 2003 - 18:43 #7
Det er jo nok fordi du har sat en vbscript kommando ind i starten.
;-)
Som sagt er det ikke vbscript, men jscript.

Så får du noget der ligner i vbscript:
<%@language=vbscript%><%
Set fso=Server.CreateObject("Scripting.FileSystemObject")

function buildSelect(foldspec)
    Set bsFold=fso.GetFolder(foldspec)
    strFoldere=""
    for each folder in bsFold.SubFolders
        strFoldere=strFoldere+"<OPTION value='" & folder.Name & "'>" & folder.Name
    next
    buildSelect=strFoldere
end function
%>
<SELECT name=userFolder><%=buildSelect("c:\zfax\users")%>
</SELECT>
Avatar billede ingeman Mester
24. maj 2003 - 18:54 #8
Nu kan kode afvikles - men jeg får ikke noget i selectboxen.

Jeg har 2 folder under c:\xfax\users som hedder henholdsvis
server
sfax

Selectboxen returner ikke noget ?
Avatar billede mortrr Praktikant
24. maj 2003 - 19:03 #9
Har du opdaget at der er kommet et lighedstegn ind ved buildselect?
Avatar billede ingeman Mester
24. maj 2003 - 19:50 #10
Med eller uden lighedstegn giver ingen forandring ?
Avatar billede ingeman Mester
24. maj 2003 - 21:04 #11
Med eller uden lighedstegn giver ingen forandring ?
selectboxen returner intet ?
Avatar billede ingeman Mester
24. maj 2003 - 21:11 #12
Jeg har fundet fejlen - koden skal se sådan ud.

<%

Dim fso,bsFold,StrFoldere,Folder

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

function buildSelect(foldspec)
    Set bsFold=fso.GetFolder(foldspec)
    strFoldere=""
    for each folder in bsFold.SubFolders
        strFoldere=strFoldere+"<OPTION value='" & folder.Name & "'>" & folder.Name
    next
    buildSelect=strFoldere
end function
%>

<SELECT name=userFolder><%=buildSelect("C:\zfax\users")%>
</SELECT>
Avatar billede ingeman Mester
24. maj 2003 - 21:16 #13
Se nu anvender vi C:\zfax\users i buildSelect - da koden skal bruges
flere forskellige servere hvor mand ikke p.f.h. ved hvor \zfax\users
ligger - hvordan kan man sikre sig at kode leder på alle tilgængelige drev
c: d: e: etc ?
Avatar billede ingeman Mester
25. maj 2003 - 10:19 #14
Jeg har selv fundet ud af noget af det.

<%
function buildSelect(foldspec)
    Dim fso,bsFold,StrFoldere,Folder,dc,d

    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set dc = fso.Drives

' Gennemløb array med en løkkedrevbogstav
    For Each d in dc
        Set d = fso.GetDrive(d.driveletter+":")
        If d.DriveType=2 then
            If fso.FolderExists(d.driveletter+":"+foldspec) = true Then Set bsFold=fso.GetFolder(d.driveletter+":"+foldspec)
        end if
    next

    strFoldere=""
    for each folder in bsFold.SubFolders
        strFoldere=strFoldere+"<OPTION value='" & folder.Name & "'>" & folder.Name
    next
    buildSelect=strFoldere
    set fso=nothing
    set dc=nothing
    set bsfold=nothing
end function
%>
<SELECT name=userFolder><%=buildSelect("\zfax\users")%>
</SELECT>

Jeg er ikke en haj til det - men det her ser ud til at virke ?
Avatar billede mortrr Praktikant
25. maj 2003 - 20:34 #15
Mind mig på at jeg ikke skal hjælpe dig næste gang.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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