Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
m.instruction = 'RD /s/q "'+m.foldername+""
STRTOFILE(m.instruction,"c:\tst.bat")
RUN c:\tst.bat
DELETE FILE c:\MyFolder\*.*
RMDIR c:\MyFolder
SET SAFETY OFF
IF DELETEFOLDER("c:\$incoming\testdir")
MESSAGEBOX("Success",48,"Done")
ELSE
MESSAGEBOX("Failed",48,"Not Done")
ENDIF
FUNCTION DELETEFOLDER
** simple function that gets all the file and folder names (using the subfoldersearch function)
** and then deletes them
PARAMETERS m.FOLDERNAME
PRIVATE m.FOLDERNAME,m.FLG
M.FLG = .T.
** gathers the names and folders into two tables (TMPFILES and TMPDIRS) in the c:\temp folder
SUBFOLDERSEARCH(m.FOLDERNAME,"*.*","c:\temp\",.T.,"TMPFILES","TMPDIRS",.F.)
SELECT 0
USE C:\TEMP\TMPFILES
SET ORDER TO
SELECT TMPFILES
GO TOP
** scan the files in any order you like
DO WHILE .NOT. EOF()
** delete each file
DELETE FILE (ALLTRIM(FULLNAME))
SKIP
ENDDO
USE
SELECT 0
USE C:\TEMP\TMPDIRS
SET ORDER TO
GO BOTTOM
** scan the folders in reverse order (deepest first)
DO WHILE .NOT. BOF()
IF DIRECTORY(ALLTRIM(FPATH))
** if they are still there - remove the folder
RMDIR (ALLTRIM(FPATH))
ENDIF
SKIP-1
ENDDO
USE
IF DIRECTORY(m.FOLDERNAME)
** if the folder is still there... you failed
M.FLG = .F.
ENDIF
RETURN(m.FLG)
FUNCTION SUBFOLDERSEARCH
PARAMETERS m.TOPLEVEL,m.MASK,m.TEMPDIR,m.PROGRESS,m.TEMPFILE,m.TMPDIRS,m.LEAVEOPEN
PRIVATE m.TOPLEVEL,m.MASK,m.TEMPDIR,m.TEMPFILE,m.TMPDIRS,m.LEAVEOPEN,m.PROGRESS,I,X,m.LASTPATH,NUMFILES,NUMDIR
PRIVATE m.OLDAREA
DIMENSION ALIST[1,5],FLIST[1,5]
IF PCOUNT() < 7
M.LEAVEOPEN = .F.
ENDIF
IF PCOUNT() < 6
M.TMPDIRS = "TMPDIRS"
ENDIF
IF PCOUNT() < 5
M.TEMPFILE = "TMPFILES"
ENDIF
IF PCOUNT() < 4
M.PROGRESS = .F.
ENDIF
IF PCOUNT() < 3
M.TEMPDIR = "C:\TEMP\"
ENDIF
IF PCOUNT() < 2
M.MASK = "*.*"
ENDIF
IF PCOUNT() < 1
M.TOPLEVEL = ".\"
ENDIF
M.OLDAREA = SELECT()
** CREATE A COUPLE OF TEMPORARY TABLES - ONE FOR THE FINAL FILENAME LIST (COMPLETE WITH PATHS
SELECT 0
CREATE TABLE (m.TEMPDIR+m.TEMPFILE) FREE (FULLNAME C(240) NOT NULL, FILESIZE N(12,0) NOT NULL, FILEDATE D NOT NULL, FILETIME C(8) NOT NULL, FILEATTR C(20) NOT NULL)
USE (m.TEMPDIR+m.TEMPFILE) ALIAS TMPFILES EXCLUSIVE
INDEX ON FULLNAME TAG TMPFILES
** AND ONE FOR THE FOLDERS TO SEARCH
SELECT 0
CREATE TABLE (m.TEMPDIR+m.TMPDIRS) FREE (FPATH C(240) NOT NULL,PROCESSED C(1) NOT NULL)
USE (m.TEMPDIR+m.TMPDIRS) ALIAS TMPDIRS EXCLUSIVE
** USE AN INDEX TO KEEP CHECKING FOR UNPROCESSED SUBFOLDERS
INDEX ON PROCESSED TAG TMPDIRS
** START BY PUTTING THE 'WHERE TO START' IN LIST OF UNPROCESSED FOLDERS
SELECT TMPDIRS
SET ORDER TO TMPDIRS
APPEND BLANK
REPLACE FPATH WITH m.TOPLEVEL
REPLACE PROCESSED WITH "N"
GO TOP
SELECT TMPDIRS
SET ORDER TO TMPDIRS
SEEK "N"
** SCAN THE LIST OF SUBFOLDERS - LOOKING FOR UNPROCESSED ONES
DO WHILE .NOT. EOF()
** MAKE A NOTE OF THE FOLDERS PATH
M.LASTPATH = ALLTRIM(FPATH)+IIF(RIGHT(ALLTRIM(FPATH),1)<> "\","\","")
WAIT "Checking..." + m.LASTPATH WINDOW NOWAIT TIMEOUT 1
** CHECK FOR FILES MATCHING MASK
NUMFILES = ADIR(FLIST,m.LASTPATH+m.MASK)
FOR I = 1 TO NUMFILES
** IGNORE THE . AND .. ONES
IF FLIST[i,1] <> "." .AND. FLIST[i,1] <> ".."
** STICK THE FILES IN THE FILE LIST
SELECT TMPFILES
APPEND BLANK
*REPLACE FPATH WITH M.LASTPATH
REPLACE FULLNAME WITH m.LASTPATH+FLIST[i,1]
REPLACE FILESIZE WITH FLIST[i,2]
REPLACE FILEDATE WITH FLIST[i,3]
REPLACE FILETIME WITH FLIST[i,4]
REPLACE FILEATTR WITH FLIST[i,5]
ENDIF
NEXT
** MARK THAT FOLDER AS PROCESSED
SELECT TMPDIRS
REPLACE PROCESSED WITH "Y"
** NOW CHECK THE FOLDER FOR SUBFOLDERS - HAVE TO DO THIS BECAUSE THE MASK
** FOR FILES OF INTEREST WILL BE DIFFERENT TO THE ONE FOR FOLDERS
NUMDIR = ADIR(ALIST,m.LASTPATH+"*.*","D")
** FOR EACH FOLDER FOUND
FOR I = 1 TO NUMDIR
** IGNORE THE ONES THAT ARE NOT FOLDERS AND THAT ARE CALLED . OR ..
IF "D"$ALIST[i,5] .AND. ALIST[i,1] <> "." .AND. ALIST[i,1] <> ".."
SELECT TMPDIRS
APPEND BLANK
REPLACE FPATH WITH m.LASTPATH+ALIST[i,1]
REPLACE PROCESSED WITH "N"
ENDIF
NEXT
** LOOK FOR THE NEXT UNPROCESSED FOLDER
WAIT CLEAR
SELECT TMPDIRS
SET ORDER TO TMPDIRS
SEEK "N"
ENDDO
RELEASE FLIST
RELEASE ALIST
SELECT TMPDIRS
USE
SELECT TMPFILES
IF !m.LEAVEOPEN
USE
SELECT(m.OLDAREA)
ENDIF
RETURN(m.TEMPDIR+m.TEMPFILE+IIF(UPPER(RIGHT(m.TEMPFILE,4)) <> ".DBF",".DBF",""))
ofs = CREATEOBJECT("Scripting.FileSystemObject")
odir = ofs.GetFolder("c:\MyFolder")
? odir.Delete
RD /S /Q ((rstam)+'familie-boek\&selectiex')
m.foldername = ((rstam)+'familie-boek\selectiex')
m.instruction = 'RD /s/q "'+m.foldername+""
STRTOFILE(m.instruction,"c:\tst.bat")
RUN c:\tst.bat
ofs = CREATEOBJECT("Scripting.FileSystemObject")
odir = ofs.GetFolder("c:\MyFolder")
? odir.Delete