[ASP] Directory Files -> Variabelen

Pagina: 1
Acties:

  • Mozin
  • Registratie: November 2000
  • Laatst online: 04-06-2023

Mozin

Gewoon een gamer

Topicstarter
Ik zit met een probleem, of eigenlijk, ik doe het nu handmatig en ik wil het automatisch :).

Ik beheer een fotosite, in een database staan de Directory en Filename van de foto's, op die manier haalt het ASP script deze uit de database en toont deze de foto's, enfin, logisch.

Nu ben ik bezig geweest met een script waarmee ik het volgende kan (maar het is niet gelukt nog). Ik wil gewoon mijn fotootjes in de directories kunnen zetten, dan een ASP script runnen welke de filenames en subdirectories in kan lezen en deze aan een variabele toekent en dan in de database zet. Klaar, alles in een keer, performance is geen probleem, het is voor eigen gebruik.

Nu ben ik geen kluns, maar ik mis een 'Loop' scriptje die een variabele vult met een filename en directory name. Heb ik bijvoorbeeld in \12-2001\macro\sleutel.jpg, dan wil ik bijvoorbeeld het volgende bereiken.

dirName = \12-2001\macro\
filName = sleutel.jpg

Als iemand een idee heeft, of een voorbeeldje van een filename leesscript, ben ik al een stuk verder.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 15:41

mulder

ik spuug op het trottoir

InStrRev gebruiken en op "\" zoeken.
Er zijn ook API's voor maar dan moet je geloof ik een COM object gebruiken.

oogjes open, snaveltjes dicht


Verwijderd

Je hebt het file scripting object nodig.

  • Mozin
  • Registratie: November 2000
  • Laatst online: 04-06-2023

Mozin

Gewoon een gamer

Topicstarter
Na een tijdje het een en ander te hebben geprobeerd, ben ik er uit :). Het werkt, tenminste, dat lijkt erop. Ik heb het voor elkaar gekregen de directory / subdirectory en filename op te slaan, precies wat ik wilde. Echter, het lukt me niet op mijn eigen webserver, wel op de testwebserver op mijn laptop, maar niet op mijn eigen. Ik sla het nog niet op in een database, ik geef ze alleen weer op het scherm.

Als ik het scriptje run (welke precies hetzelfde is als diegene die bewezen werkt), doet de browser niets, hij geeft een leeg scherm, en het progressbarretje gaat langzaam vooruit zonder resultaat, error, of wat dan ook. Na een hoop gerefresh maakt mijn IIS 5.1 (WinXP) het zelfs zo bont, dat deze 'too many active connections' gaat roepen :). Een verkeerde 'loop' kan het niet zijn, omdat het wel werkt op die andere server (IIS op een WinNT)

Ik heb alle permissions naar mijn inzien goed gezet. Was ik net zo enthousiast en trots op mijn code, snik. Het zal wel een beetje een vage probleemstelling zijn, maar ja, misschien kan iemand er iets mee,, :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Lastig te zeggen zonder code, maar als de progress bar heel traag gaat is dat vaak een teken dat het 'goed fout' zit ;)
Kijk eens naar je taskmanager en t zal me niks verbazen als je dllhost process 100% zit te vreten.
Kijk eens of je wat aan error handling doet, misschien krijg je wel gewoon een brute fout maar heb je On Error Resume Next ergens neer gegooit...

Exact expert nodig?


  • Mozin
  • Registratie: November 2000
  • Laatst online: 04-06-2023

Mozin

Gewoon een gamer

Topicstarter
Errors zie ik niet, en het vreemde is dat exact dezelfde code elders wel werkt. Een werkend voorbeeld is te zien op

www.ovak-reunie.nl/ddd.asp

De hele source (de code is vast lelijk, inconsequent en brak, maar ik ben geen prof-programmer), ghehe.



<%
Dim albumPath, fileSystem, folder, folderCollection, fileCollection, subFolder, subFolderCollection
Dim directoryInput, nameInput

albumPath = "/"

Set fileSystem = CreateObject("Scripting.FileSystemObject")
Set folder = fileSystem.GetFolder(server.mappath(albumPath))
Set folderCollection = folder.SubFolders


For Each folder in folderCollection

albumPath = folder.name
Set subFolder = fileSystem.GetFolder(server.mappath(albumPath))
Set subFolderCollection = folder.SubFolders

For Each subFolder in subFolderCollection

albumPath = folder.name
Set folder = fileSystem.GetFolder(server.mappath(albumPath))
Set fileCollection = subfolder.Files

For Each file in fileCollection
directoryInput = folder.name & "\" & subfolder.name & "\"
nameInput = file.name
%><%=directoryInput %> - <%=nameInput %><BR>


<%Next
Next
Next

set fileSystem = nothing
set folder = nothing
set fileCollection = nothing
%>

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 19:17
bij werkt de code wel onder winxp...

als ik zo de code bekijk is er niet 123 wat mis mee, denk dus dat je het eerder in je winxp/iis config moet gaat zoeken, staat er niet iets over in je event viewer?

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 19:17
nu ik nogmaals kijk zie ik dat er nog wel een bugje in zit, hij geeft dirs zonder subdirs niet weer, ook geeft ie de inhoud van / (de bestanden niet weer)

  • Mozin
  • Registratie: November 2000
  • Laatst online: 04-06-2023

Mozin

Gewoon een gamer

Topicstarter
Ik weet dat de code niet de files list van de dirs, maar alleen van de subdirs, dat is de bedoeling ook :).

Ja, het is een config IIS kwestie, en daar weet ik niet veel van, hmm, dat wordt doorzoeken.
Pagina: 1