[JS] lokale directory uitlezen??

Pagina: 1
Acties:

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
Ik zit hier lokaal wat te maken met html en javascript (php in niet mogelijk helaas, wat ik normaal wel gebruik).

Het is de bedoeling, dat ik een directory uitlees (alles lokaal dus) en alle dub-dirs, met desbetreffende files, in een array gooi, om vervolgens mooi weer te geven in een overzichtje op een html pagina!

Nou dat uitlezen lukt dus van geen meter, ik weet echt niet hoe dit dus moet onder javascript...


Onder vbscript heb ik iets gevonden :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 dim Dir, Dir_Open, Show_Ext
 Dir      ="K:\deDir"
 Dir_Open ="K:\deDir"
 Show_ext = "doc"

 function DocsInDir
  Dim filesys, folder, fil, filecoll, filist
  Set filesys = CreateObject("Scripting.FileSystemObject")
  Set folder = filesys.GetFolder(Dir)
  Set filecoll = folder.Files
  For Each fil in filecoll
  Exten = filesys.GetExtensionName(fil.name)
  if exten = Show_ext then
   filist = filist & "<a href=""file://" & Dir_Open & "\" & fil.name & """>" & fil.name & "</a>"
   filist = filist & "<BR>"
  end if
  Next
  DocsInDir = filist
 End function


als ik dan vervolgens in html DocsInDir schrijf krijg ik mooi een overzichtje, MAAR ik kan die dus niet doorgeven aan javascript... d8 ik dus.

Nou heeft dus iemand een idee, ofdat ik wel die code doorgeef, ofdat ik iets in javascript zelf maken moet!
bvd

euh...ja


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Waarom gebruik je niet gewoon vbscript dan, als het toch allemaal lokaal moet gebeuren? Verder zit je in het verkeerde forum.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Javascript bij de buren :)

Professionele website nodig?


Verwijderd

Volgens mij kan dat dus niet met Javascript.

  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

Lokaal bij wie, de host of de client?

Met PHP kan het enkel op de host, met enkel javascript kan het nergens, als het goed is.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Het kan vast wel, maar de gebruiker zal altijd toegang moeten geven. Of het nu met een signed JS of VB/ActiveX is.

  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
Johnny schreef op 09 augustus 2004 @ 14:00:
Lokaal bij wie, de host of de client?

Met PHP kan het enkel op de host, met enkel javascript kan het nergens, als het goed is.
Ik werk hier "lokaal" (op mijn pc dus) zonder lokale webserver oid (geen php apache ed).

Het enigste wat ik hier lokaal ter beschikking hebt is dus client-side scripting, ofwel javascript met wat html... dat is het m juist, als ik hier kon php-en was ik zo klaar!
Aangezien ik normaal bijna niets doe met javascript (of vbscript).

Maar ok als ik het goed begrijp is dit dus niet te realisreren met JS. :'( toch?

euh...ja


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Het kan wel door middel van het ActiveXObject FileSystemObject, deze bevat de functies die je nodig hebt. Zie MSDN voor meer info. ;)

Verwijderd

Rfce schreef op 09 augustus 2004 @ 14:21:
[...]
Maar ok als ik het goed begrijp is dit dus niet te realisreren met JS. :'( toch?
Zeg nooit nooit. Wat VBScript kan kan JavaScript ook, voornamelijk omdat VBScript al zijn functionaliteit uit Automation objects haalt. En JavaScript (JScript) kan dat evengoed.

Het volgende wint geen schoonheids/usability prijzen, maar werkt wel en illustreert het gebruik :-

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
    <head>
        <script language="Javascript">
        function go(target) {
            document.getElementById("location").value = target;
            refresh();
        }
    
        function refresh() {
            fs = new ActiveXObject("Scripting.FileSystemObject");
            dirname = document.getElementById("location").value;
            dir = fs.GetFolder(dirname);

            tbl = "<table><tr><th>Item</th></tr>";

            fl = new Enumerator(dir.Subfolders);

            for (; !fl.atEnd(); fl.moveNext()) {
                i = fl.item();
                p = i.Path;
                p = p.replace('\\', '\\\\')
                n = i.Name;
                tbl += "<tr><td class='folder'><a href='javascript:go(\"" + p + "\");'>" + n + "</td></tr>";
            }

            fi = new Enumerator(dir.Files);
            for (; !fi.atEnd(); fi.moveNext()) {
                tbl += "<tr><td class='file'>" + fi.item().Name + "</td></tr>";
            }

            tbl += "</table>";

            document.getElementById("itemtable").innerHTML = tbl;
        }
        </script>

        <style>
            .folder {
                font-weight: bold;
            }

            table {
                border: 1px;
            }
        </style>
    </head>
    <body>
        <input type="text" id="location" value="c:\"> <input type="button" value="go" onClick="javascript:refresh();">
        <div id="itemtable"/>
    </body>
</html>


edit:
Hmmm... hij werkt toch niet dieper dan 1 niveau, maar dat komt omdat de replace() functie brak is (hij replacet maximaal één keer).

Stomme Javascript.

[ Voor 40% gewijzigd door Verwijderd op 09-08-2004 15:19 ]


  • Rfce
  • Registratie: Oktober 2001
  • Laatst online: 26-09-2024

Rfce

Veni, Vidi, Vici

Topicstarter
Ja, kijk hiermee kan ik wat :) ... heb veel ook gezocht en kwam alleen vcscripts tegen... ok ik ga deze wat finetunen... iig hardstikke bedankt!!

euh...ja

Pagina: 1