Avatar billede ravnkilde Nybegynder
26. juni 2006 - 14:59 Der er 10 kommentarer og
1 løsning

directoryfile / tilføjelse af if else sætning

Hej!

Jeg har et lille stykke kode, der aflæser indholdet i en mappe på min server. Nu vil jeg gerne have lavet det således, at hvis mappen er tom, skrives der "Mappen er tom."

Det er noget i stil med if "der er filer i mappen" then "min kode" else "response.write Mappen er tom." Jeg kan bare ikke lige få det smeltet sammen.

Kan du hjælpe?

--- start kode ---

<%

Set directory=server.createobject("scripting.filesystemobject")
Set allfiles=directory.getfolder(server.mappath("Advertisements/"))
' Liste alle filer i mappe
For each directoryfile in allFiles.files %>
<a href="Advertisements/<% =directoryfile.Name %>" target="_blank">
<%
ext=right(directoryfile.Name,3)
select case ext
case "pdf","mdb","xls","ppt","doc","txt" %>
<img src="../images/directory/<%= ext %>.jpg" border="0">
<% case else %>
<img src="../images/directory/unk.jpg" border="0">
<% end select %>
<% =directoryfile.Name %></a> - File created: <%=directoryfile.DateCreated %>
<br>
<% Next %>

---  kode slut ---
Avatar billede Slettet bruger
26. juni 2006 - 15:42 #1
prøv denne her:
<%
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFolder(server.mappath("Advertisements/"))
for each file in f.files
filename = file.name
filenames=filenames & ";"
next
set f=nothing
set fs=nothing
if filenames<>"" then
strfilesnames = split(filenames,";")
for a=0 to ubound(strfilenames)
Cfilename = strfilenames(a)
ext = right(lcase(Cfilename),3)
%>
<a href="Advertisements/<%=Cfilename%>" target="_blank">
<%
if (ext="pdf" OR ext="mdb" OR ext="xls" OR ext="ppt" OR ext="doc" OR ext="txt") then
%>
<img src="../images/directory/<%= ext %>.jpg" border="0">
<%
else
%>
<img src="../images/directory/unk.jpg" border="0">
<%
end if
%>
<%=Cfilename%></a>
<%
next
else
response.write "mappen er tom"
end if
%>

\Dan
Avatar billede ravnkilde Nybegynder
26. juni 2006 - 15:54 #2
Hej Dan!

Har lige prøvet den med flg. res.:

Microsoft VBScript runtime  error '800a000d'

Type mismatch: 'ubound'

/show_Advertisements.asp, line 48
Avatar billede ravnkilde Nybegynder
26. juni 2006 - 15:59 #3
fandt fejlen her strfilesnames
men resultatet af den rettede side bliver en side med et par ikoner og en bindestreg!
Avatar billede Slettet bruger
26. juni 2006 - 16:17 #4
hehe... det beklager jeg... det var en slåfejl fra min side...
prøv denne her:
<%
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFolder(server.mappath("Advertisements/"))
for each file in f.files
filename = file.name
filenames=filenames & ";"
next
set f=nothing
set fs=nothing
if filenames<>"" then
strfilenames = split(filenames,";")
for a=0 to ubound(strfilenames)
Cfilename = strfilenames(a)
ext = right(lcase(Cfilename),3)
%>
<a href="Advertisements/<%=Cfilename%>" target="_blank">
<%
if (ext="pdf" OR ext="mdb" OR ext="xls" OR ext="ppt" OR ext="doc" OR ext="txt") then
%>
<img src="../images/directory/<%= ext %>.jpg" border="0">
<%
else
%>
<img src="../images/directory/unk.jpg" border="0">
<%
end if
%>
<%=Cfilename%></a>
<%
next
else
response.write "mappen er tom"
end if
%>
Avatar billede ravnkilde Nybegynder
27. juni 2006 - 09:02 #5
Hej igen Dan!

Jeg rettede selv fejlen og testede dit forslag. Men det fungerer ikke. Siden viser en linie med først et ikon, en bindestreg og igen et ikon. Intet andet. Når man så klikker på et af ikonerne, åbnes en ny side med "Directory Listing Denied". I mappen ligger der et Word-dok.

Det dutter altså desværre ikke.
Avatar billede ravnkilde Nybegynder
27. juni 2006 - 09:04 #6
Dan, jeg skylder lige at sige, at når mappen er tom, skriver den ganske vist "mappen er tom", men din kode lister ikke filerne sådan som jeg gerne vil, når der er indhold i mappen.
Avatar billede Slettet bruger
27. juni 2006 - 14:27 #7
hmm... OK! Det lyder nu lidt underligt i mine ører... Men hvad så med denne her:
<%

Set directory=server.createobject("scripting.filesystemobject")
Set allfiles=directory.getfolder(server.mappath("Advertisements/"))
' Liste alle filer i mappe
if (allFiles.files)<>"" then
For each directoryfile in allFiles.files %>
<a href="Advertisements/<% =directoryfile.Name %>" target="_blank">
<%
ext=right(directoryfile.Name,3)
select case ext
case "pdf","mdb","xls","ppt","doc","txt" %>
<img src="../images/directory/<%= ext %>.jpg" border="0">
<% case else %>
<img src="../images/directory/unk.jpg" border="0">
<% end select %>
<% =directoryfile.Name %></a> - File created: <%=directoryfile.DateCreated %>
<br>
<%
Next
else
response.write "Mappen er tom"
end if
%>


\Dan
Avatar billede ravnkilde Nybegynder
27. juni 2006 - 16:40 #8
Hej Dan!

Fejl:

Microsoft VBScript runtime  error '800a01c2'

Wrong number of arguments or invalid property assignment

/competition/Lavatec/show_Advertisements_ORG.asp, line 42

Linie 42 er denne: if (allFiles.files)<>"" then
Avatar billede Slettet bruger
27. juni 2006 - 17:43 #9
- hehe hvad så med denne her:
<%

Set directory=server.createobject("scripting.filesystemobject")
Set allfiles=directory.getfolder(server.mappath("Advertisements/"))
' Liste alle filer i mappe
size = allFiles.size
if size<>0 then
For each directoryfile in allFiles.files %>
<a href="Advertisements/<% =directoryfile.Name %>" target="_blank">
<%
ext=right(directoryfile.Name,3)
select case ext
case "pdf","mdb","xls","ppt","doc","txt" %>
<img src="../images/directory/<%= ext %>.jpg" border="0">
<% case else %>
<img src="../images/directory/unk.jpg" border="0">
<% end select %>
<% =directoryfile.Name %></a> - File created: <%=directoryfile.DateCreated %>
<br>
<%
Next
else
response.write "mappen er tom"
end if
%>

- her tjekkes det bare hvor meget mappen fylder i bytes - og hvis den fylder 0 bytes er mappen tom og det er så det vi skriver i så fald...

\Dan
Avatar billede ravnkilde Nybegynder
28. juni 2006 - 16:33 #10
Så virker det, Dan! Takker mange gange.

Smid et svar og få nogle points.
Avatar billede Slettet bruger
28. juni 2006 - 17:23 #11
OK! Det var godt...

- her et svar...

\Dan
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
Kurser inden for grundlæggende programmering

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