It is possible to execute the DOS MD (make
directory) command using the Cicode Exec() function (Q1028, Q2138). However,
the Windows API offers a DLL function that will do this without
opening a DOS window. It also has the advantage that it will create
multiple nested folders if necessary. For example, with the
CreatePath code below, the following command will create a Reports,
Daily, Section 1, and Processing folder if they do not already
exist:
CreatePath("c:\Reports\Daily\Section 1\Processing");
Use the following code in CitectSCADA 6.10 and later. In earlier
versions of Citect, replace the DLLCallEx() function with
DLLCall(). The MakeSureDirectoryPathExists function is not
available on Windows 95/98/NT.
INT mhCreatePath = -1;
// Creates all folders necessary for the specified path to be valid
// If the path includes a filename, the filename is ignored.
// Path substitution may be used.
//
// Returns TRUE if successful
//
INT
FUNCTION
CreatePath(STRING sPath)
sPath = PathToStr(sPath);
IF mhCreatePath = -1 THEN
mhCreatePath = DLLOpen("dbghelp.dll", "MakeSureDirectoryPathExists", "AC");
END
RETURN DLLCallEx(mhCreatePath, sPath);
END
|