Getting file size information in Windows

Chris Kelleher

Administrator
Staff member
<BLOCKQUOTE><font size="1" face="Arial, Verdana">code:</font><HR><pre>/* fileinfo.p */

/* pFileName -- the name (complete path) of the file to find info for */
def input parameter pFileName as char.
/* pDate -- the file's last modified date */
def output parameter pDate as date no-undo.
/* pTime -- the file's last modified time, in Progress time format */
def output parameter pTime as int no-undo.
/* pSize -- the file's size in bytes */
def output parameter pSize as int no-undo.

def var vYr as int no-undo.
def var vMo as int no-undo.
def var vDay as int no-undo.
def var vHr as int no-undo.
def var vMin as int no-undo.
def var vSec as int no-undo.
def var vSize as int no-undo.
def var vErr as int no-undo.

run file_info(pFileName,output vYr,output vMo,output vDay,
output vHr,output vMin,output vSec,
output vSize,output vErr).
if vErr <> 0 then
assign pSize = -(abs(vErr)).
else
assign pDate = date(vMo,vDay,vYr)
pTime = (vHr * 3600) + (vMin * 60) + vSec /* seconds past midnight
*/
pSize = vSize.

/***************************************************************************
*/
/* fileinfo.dll provided by Progress in V8 and higher */
PROCEDURE file_info EXTERNAL "fileinfo.dll":u:
DEFINE INPUT PARAMETER file-path AS CHARACTER.
DEFINE OUTPUT PARAMETER file-year AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-mon AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-day AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-hour AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-min AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-sec AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER file-size AS HANDLE TO LONG.
DEFINE OUTPUT PARAMETER error AS HANDLE TO LONG.
END PROCEDURE.
[/code]
 
Top