=====Creating temporary files and directories=====
//by Jon Ripley, August 2007//\\ \\ The **FNtempfile** function creates and returns the name of a unique file in the current temporary directory. You should ensure that you delete this file when you no longer require it.\\ \\
file$ = FNtempfile
REM ...
SYS "DeleteFile", file$
\\ The **FNtempdir** function creates and returns the name of a unique directory in the current temporary directory. You should ensure that you delete this directory when you no longer require it.\\ \\
dir$ = FNtempdir
REM ...
SYS "RemoveDirectory", dir$
\\ The "RemoveDirectory" call requires that the directory to be deleted is empty. To delete a non-empty directory use the **PROCremovedirectory** function as demonstrated:\\ \\
dir$ = FNtempdir
REM ...
PROCremovedirectory(dir$)
\\ The code for the **FNtempfile**, **FNtempdir** and **PROCremovedirectory** functions referenced in this article are listed below:\\ \\
DEF FNtempfile
LOCAL T%
DIM T% LOCAL 255
SYS "GetTempPath", 256, T%
SYS "GetTempFileName", $$T%, "tmp", 0, T%
= $$T%
DEF FNtempdir
LOCAL T%
DIM T% LOCAL 255
SYS "GetTempPath", 256, T%
SYS "GetTempFileName", $$T%, "tmp", 0, T%
SYS "DeleteFile", $$T%
SYS "CreateDirectory", $$T%, 0
IF $$T% > "" $$T% += "\"
= $$T%
DEF PROCremovedirectory(D$)
IF D$ = "" THEN ENDPROC
LOCAL shfo{}
DIM shfo{hWnd%, wFunc%, pFrom%, pTo%, fFlags%, fAborted%, hNameMaps%, sProgress%}
IF RIGHT$(D$,1) = "\" THEN D$ = LEFT$(D$)
D$ += CHR$0 + CHR$0
shfo.hWnd% = @hwnd%
shfo.wFunc% = 3
shfo.pFrom% = !^D$
shfo.fFlags% = 20
SYS "SHFileOperation", shfo{}
ENDPROC
\\ The string "tmp" passed to "GetTempFileName" is a prefix for the temporary file name which you may change to any three character string, perhaps to be distinctive to your application.