[ASP] Files verwijderen met FSO

Pagina: 1
Acties:

Onderwerpen


  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
De posten van een forum worden elk 24 uur als HTML file gegenereerd en in D:\HTML\id\ gezet.
Dit gebeurt omdat deze dan ook zichtbaar kunnen worden gemaakt op PC's zonder IIS en zonder internetverbinding.

Post met het id 2000 wordt dus bestand 2000.html
In deze HTML file zal de inhoud van de post staan.

Indien er 5 posten in het forum staan zullen bijvoorbeeld de volgende bestanden in D:\HTML\id\ staan:
2001.html
2002.html
2003.html
2004.html
2005.html

Tot zover geen problemen,
Nu moet er indien post met met id 2003 verwijderd wordt van het forum deze ook verwijderd worden uit D:\HTML\id\.
Het verwijderen van alle bestanden lukt wel met:
ASP:
1
2
3
4
5
sSourceFile = "d:\HTML\id\" & objRS("Id") & ".html"

    If FSO.FileExists(sSourceFile) Then
       FSO.DeleteFile sSourceFile
    End If


Natuurlijk is ook een optie om telkens alle bestanden te verwijderen en deze weer opnieuw te genereren.
Dit wil ik echter voorkomen door een controle in te bouwen als:

ASP:
1
2
3
4
5
6
7
8
9
10
QueryGetPosten = "SELECT * FROM TblPosten"
Set objRs = Conn.Execute(QueryGetPosten)

Do Until objRs.EOF
?? Controleer of de objRS("Id") voorkomt in de bestaande files op d:\HTML\id\
?? zo nee
?? verwijder deze file

objRs.MoveNext
Loop


Deze controle gaat mij niet lukken, hierbij is jullie hulp zeer gewenst.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 09-10 22:53

TeeDee

CQB 241

Que? Als je nu op de vraagtekens 't eerste stukje code zet, dan ben je er toch?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • spone
  • Registratie: Mei 2002
  • Niet online
Gewoon ook FSO.fileExists gebruiken?

i5-14600K | 32GB DDR5-6000 | RTX 5070 - MacBook Pro M1 Pro 14" 16/512


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Gebruik PHP, daar kan je het wel mee.

Als je niks inhoudelijks toe te voegen hebt, zeg dan niets. :/

[ Voor 50% gewijzigd door NMe op 15-09-2010 21:29 ]


  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
TeeDee schreef op woensdag 15 september 2010 @ 21:20:
Que? Als je nu op de vraagtekens 't eerste stukje code zet, dan ben je er toch?
Als je dit doet, dan verwijder je alle bestanden die overeenkomen met de id's
Dit moet juist niet;
Ik wil alle html bestanden verwijderen die juist niet overeenkomen met de id's
Dus als er in de tabel id's
2001
2002
2003
2004
2005
staan.
Zullen bestanden 2001.html, 2002.html, 2003.html, 2004.html en 2005.html op D:\HTML\id staan.

Als nu post met het id 2004 verwijderd wordt zou ook 2004.html met FSO verwijderd moeten worden.

[ Voor 26% gewijzigd door Andre1234 op 15-09-2010 22:03 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 09-10 22:53

TeeDee

CQB 241

Dan kan je een aantal zaken doen (er zullen er wel meer zijn, maar dit schiet me te binnen):
1. op het moment dat post 2004 uit de DB gehaald wordt (ervan uitgaande dat dit een handmatige actie is) meteen dit file ook verwijderen? Je weet tenslotte welke het zou moeten zijn...

2. Alle files doorlopen (met je huidige while):
VBScript:
1
2
3
4
5
6
7
Do Until objRs.EOF
' Controleer of de objRS("Id") voorkomt in de bestaande files op d:\HTML\id\
' zo ja
' verplaats deze file naar een tijdelijke map
objRs.MoveNext
' delete vervolgens alle content uit je eerste map (dus d:\html\id\)
' move vervolgens alle bestanden uit de tijdelijke map terug naar d:\html\id

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
TeeDee schreef op woensdag 15 september 2010 @ 22:11:
Dan kan je een aantal zaken doen (er zullen er wel meer zijn, maar dit schiet me te binnen):
1. op het moment dat post 2004 uit de DB gehaald wordt (ervan uitgaande dat dit een handmatige actie is) meteen dit file ook verwijderen? Je weet tenslotte welke het zou moeten zijn...

2. Alle files doorlopen (met je huidige while):
VBScript:
1
2
3
4
5
6
7
Do Until objRs.EOF
' Controleer of de objRS("Id") voorkomt in de bestaande files op d:\HTML\id\
' zo ja
' verplaats deze file naar een tijdelijke map
objRs.MoveNext
' delete vervolgens alle content uit je eerste map (dus d:\html\id\)
' move vervolgens alle bestanden uit de tijdelijke map terug naar d:\html\id
Bedankt,
Beide mogelijkheden zie ik wel zitten, ga ze morgen uitproberen.
Pagina: 1