Documentation component
QDIR By Jacques Philippe October
2002 |
Appendix A: QDIR |
|
QDIR Internal Types
Type QDIR_FILETIME
lowDateTime As Long
highDateTime As Long
End Type
Type QDIR_WIN32_FIND_DATA ' WIN32 NAMES
attributes As Long ' dwFileAttributes As Long
' RAPIDQ BUGS WITH NESTED TYPES so REPLACED BY ! No Differences
' ftCreationTime As FILETIME
creationLowDateTime As Long ' ftCreationTime.dwLowDateTime As Long
creationHighDateTime As Long ' ftCreationTime.dwHighDateTime As Long
' ftLastAccessTime As FILETIME
lastAccessLowDateTime As Long ' ftLastAccessTime.dwLowDateTime As Long
lastAccessHighDateTime As Long ' ftLastAccessTime.dwHighDateTime As Long
' ftLastWriteTime As FILETIME
lastWriteLowDateTime As Long ' ftLastWriteTime.dwLowDateTime As Long
lastWriteHighDateTime As Long ' ftLastWriteTime.dwHighDateTime As Long
fileSizeHigh As Long ' nFileSizeHigh As Long
fileSizeLow As Long ' nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type
Type QDIR_SYSTEMTIME ' VB integer = RQ Short
year As Short ' the year as a number
month As Short 'the month as a number
dayOfWeek As Short ' number of the day of the week SUNDAY = 0, MONDAY = 1, ...
day As Short 'day in the month 1, 2, 3,... 12, 13, 14, ... 28/30/31
hour As Short 'the hour as a number
minute As Short 'the minute as a number
second As Short 'the second as a number
milliseconds As Short 'the milliseconds as a number
' Extended
DateTime As Double ' The DateTime As A Number
date As String * 10 ' Date as a String mm/dd/yyyy
dateEU As String * 10 ' EU date Foramt dd/mm/yyyy
dateAlpha As String * 16 ' "ddd" "mmm" DD, yyyy
dateAlphaEU As String * 15 ' "ddd" DD "mmm" yyyy
time As String * 8 ' without ms HH:MM:SS
timems As String * 12 ' Time As a String HH:MM:SS.iii
strDayOfWeek As String * 3 ' day of the week as in Day(0 To 6) : "Mon", "Tue", "Wed", ... "Sun"
nWeekDay As String * 1 ' "0", "1", "2", ... "6"
strMonthOfYear As String * 3 ' day of the week as in Months(1 To 12) : "Jan", "Feb", ... "Dec"
End Type
QDIR Properties
Field | Type | R/W | Défault |
Find Files Parameters | |||
fileName | string | R/W | |
the name of the founded file | |||
dosFileName | string | R/W | |
dos the name of the founded file | |||
path | String | R/W | applicationPath = Command$(0) - Application.exeName |
Absolute path to the file ie : C:\myDir\otherDir\ | |||
pathFileName | string | R/W | |
Absolute path + the fileName ie : c:\Windows\system.dat | |||
size | Double | R/W | |
the size as a double (use StrF$(size, ffFixed, 18, 0) to exp (ffNumber to have thousands separators) | |||
Date and Time Variable | |||
creation | as QDIR_SYSTEMTIME | ||
the Type contaning informations about the creationTime | |||
lastAccess | as QDIR_SYSTEMTIME | ||
the Type contaning informations about the lastAccessTime | |||
lastWrite | as QDIR_SYSTEMTIME | ||
the Type contaning informations about the lastWriteTime | |||
File Times
The File Time Properties decribed below for lastwriteTime may be found here for all three File Times : ie - QDir.Creation.dateAlphaEU - QDir.lastAccess.dateEU and even - QDir.lastWrite.timems (which is equal to QDir.timems) These three time TYPES give access to 3 x 18 porpeties (=54), not used every day :) To compare dates and times, use dateTime. The dateTimes are DOUBLE precision numbers (64 bit Integer, converted here in DOUBLE) holding a date and time associated with a file. That DOUBLE specifies the number of 100-nanosecond intervals which have passed since January 1, 1601 (10,000,000 for each elapsed second since then). |
|||
dateTime | Double | ||
the lastWriteTime of the file as a double | |||
time | String | ||
the lastwriteTime of the file, format HH:MM:SS | |||
timems | String | ||
the lastWriteTime of the file + milliseconds, format HH:MM:SS,mmm | |||
date | String | ||
the lastWriteTime date, format MM/DD/YYYY | |||
dateEU | String | ||
the lastWriteTime date, EU foramt DD/MM/YYYY | |||
dateAlpha | String | ||
the lastWriteTime in alphanumeric format "mon dec 24 2001" | |||
dateAlphaEU | string | ||
the lastWriteTime in alphanumeric EU format "mon 24 dec 2001" | |||
strDayOfWeek | string | ||
the lastWriteTime Day Of The Week : "Mon", "Tue", "Wed", Thu" ... | |||
strMonthOfYear | String | ||
the lastWriteTime Month Of The Year : "Jan", "Feb", "Mar", "Apr", ... | |||
Attibutes | |||
attributes | Long | ||
the attributes af the file (sum of attributes) | |||
attributesAsString | String | ||
the attributes transformed in a string "ADHNRSTC0" If Instr(myDir.AttributesAsString, "A") Then .... | |||
Text Month, WeekDay | |||
days(0 To 6)
|
As String | days(0)
= "Sunday"
'"Dim" ' May Be Changed days(0 To 6) days(1) = "Monday" '"Lun" days(2) = "Tuesday" '"Mar" days(3) = "Wednesday" '"Mer" days(4) = "Thursday" '"Jeu" days(5) = "Friday" '"Ven" days(6) = "Saturday" '"Sam" |
|
the 7 names of the strDayOfWeek. Source for AlphaNumeric dates | |||
months(1 To 12)
|
As String | months(1) = "January"
' May be Changed months(1 To 12)
months(2) = "February" months(3) = "March" months(4) = "April" months(5) = "May" months(6) = "June" months(7) = "July" months(8) = "August" months(9) = "September" months(10) = "October" months(11) = "November" months(12) = "December" |
|
the 12 names of strMonthOfYear. Source for AlphaNumeric dates |
Method | Description |
Function Close As Long | |
Function GetFirstFile (sPathFilter As String) As String | |
Function GetNextFile As String | |
Sub Dir (sPathFilter As String, sRejectedAttributes As String, sMustAttributes As string) | File Search without Scanning The Sub Directories |
Sub Dirs (sPathFilter As String, sRejectedAttributes As String, sMustAttributes As String) | File Search with Scanning the Sub Directories Dirs chosen to remember the Command Dir /s Note! Dir and Dirs will only return when ALL the directory job has been done. There is no DoEvents in QDir. - Once a QDir.Dir or QDir.Dirs is Started, a busy flag forbids to start another occurence of QDir.Dir or QDir.Dirs, until the first job is finished. To start more than one QDir.Dir or QDir.Dirs simultneously, you must DECLARE (DIM) two or more Variables As QDIR. |
Functioni ChangeFileDateAndTime ( ... ) As Long | ChangeFileDateAndTime (pathFileName$, Year%, month%,
day%, hour%, minute%, second%, optionWhichTimes$) Return 0 (False) on Failure or 1 (True) on success |
EXAMPLES : - ChangeFileDateAndTime ("c:\myDir\myFile", 1983, 6, 21, 17, 22, 33) ' the LastWriteTime Of MyFile is set to June 21 st 1983 at 17:22:23 - ChangeFileAndDate ("c:\myDir\myFile", 1983, 6, 21, 17, 22, 33 "Access") ' the LastAccessTime Of myFile is set to June 21 st 1983 at 17:22:23 - ChangeFileAndDate ("c:\myDir\myFile", 1983, 6, 21, 17, 22, 33 "ACCESS Write CREATION") ' the LastAccessTime, CreationTime and LastWriteTime Of myFile are set to June 21 st 1983 at 17:22:23 Used in the Event OnFileFound with Qdir.pathFilename can change the Date and Time of all matching files. A File is Stored on Disk with Three Different Dates and Times Named : - the creationTime - the lastAccesstime - the lastWriteTime (the one mostly mostly used shown) Six NUMERIC Parameters **MUST** be Passed to the Functioni : - the First is the YEAR of the new Date Time For the File - the Second is the MONTH of the new Date Time For the File - the Third is the DAY of the new Date Time For the File - the Fourth is the HOUR of the new Date Time For the File - the Fifth is the MINUTE of the new Date Time For the File - the Sixth is the SECOND of the new Date Time For the File The FILENAME With or Without a Path must be Passed as a STRING ! The optionWhichTimes Parameter is a STRING that Indicates to the Functioni which file Times must be Changed. If that String contains : - "CREATION" the creationTime will be Changed ("CRE" is enough) - "ACCESS" the lastAccessTime will be changed ("ACC" is enough) - "WRITE" the lastWriteTime will be changed ("WRI" is enough) Not case sensitive If that string is not Passed or is Empty, the lastWriteTime only will be changed ERROR : on error a ShowMessage is POPED UP and the Functioni Returns 0 (False |
|
Function ChangeFileAttributes (sPathFileName As string, attributesAsString As String) As Long | |
- attributes are passed as a
String, elements of that string are : "A" for Archive "D" for Directory "H" for Hidden "N" for Normal "R" for Read Only "S" for System "T" for Temporary "C" for Compressed "0" for No Attribute Set (?=N?) EXAMPLE : ------- ChangeFileAttributes ("c:\myDir\myFile","AR") the attributes of myFile are set to Archive and ReadOnly The function returns 1 (True) if attributes have been changed and 0 if an error has occured. Used in the Event OnFileFound with Qdir.pathFilename can change the attributes of all matching files. |
|
Parameters description sPathFilter - Path + FileMask, i.e "C:/Rapid-Q/*" or "c:\\Windows\\*.txt".
sRejectedAttributes - in rejectedAttributes$, if more than one
attribute is rejected, all file having one of these rejected attributes set is
rejected from the search. |
Event | Type | Occurs when... | Params |
OnFileFound | OnFileFound = 0 |