WinFile Project Page
WinFile Project Page
- Future Enhancements
- 3.6.2 from 2016-05-06
- 3.6.1 from 2016-04-15
- 3.6.0 from 2016-03-23
- 3.5.1 from 2015-08-16
- 3.5.0 from 2015-05-25
- 3.4.1 from 2015-01-19
- 3.4.0 from 2015-01-10
- 3.3.1 from 2014-12-16
- 3.3.0 from 2014-11-01
- 3.2.0 from 2014-08-07
- 3.1.0 from 2014-06-04
- 3.0.4 from 2014-02-19
- 3.0.3 from 2014-02-15
- 3.0.2 from 2014-02-07
- 3.0.1 from 2014-01-23
- 3.0.0 from 2014-01-14
- 2.4.4 from 2013-12-21
- 2.4.3 from 2013-12-16
- 2.4.2 from 2013-10-17
- 2.4.1 (not released)
- 2.4.0 from 2013-06-03
- 2.3.9 from 2013-03-15
- 2.3.8 from 2013-03-05
- 2.3.7 from 2013-03-01
- 2.3.6 from 2013-02-08
- 2.3.5 from 2012-11-13
- 2.3.4 from 2012-11-05
- 2.3.3 from 2012-11-05
- 2.3.2 from 2012-10-05
- 2.3.1 from 2012-10-10
- 2.3.0 from 2012-09-29
- 2.2.2 from 2012-09-27
- 2.2.1 from 2012-09-02
- 2.2.0 from 2012-05-05
- 2.1.1 from 2012-02-16
- 2.1.0 from 2012-01-24
- 2.0.3 from 2012-01-04
- 2.0.2 from 2012-01-04
- 2.0.1 from 2011-12-30
- 2.0.0 from 2011-12-17
- 1.9.1 from 2011-12-15
- 1.9.0 from 2011-12-15
- 1.8.1 from 2011-11-05
- 1.8.0 from 2011-09-23
- 1.7.4 from 2011-08-29
- 1.7.4 from 2011-08-29
- 1.7.3 from 2011-08-12
- 1.7.2 from 2011-08-07
- 1.7.1 from 2011-08-02
- 1.7.0 from 2011-07-11
- 1.6.1 from 2011-07-04
- 1.6.0 from 2011-06-02
- 1.5.1 from 2011-05-03
- 1.5.0 from 2011-05-02
- 1.4.6 from 2011-05-02
- 1.4.5 from 2011-04-21
- 1.4.4 from 2011-04-09
- 1.4.3 from 2011-04-05
- 1.4.2 from 2011-03-01
- 1.4.1 from 2011-03-01
- 1.4.0 from 2011-03-01
- 1.3.2 from 2010-12-15
- 1.3.1 from 2010-02-20
- 1.3.0 from 2009-08-09
- 1.2.9 from 2009-07-05
- 1.2.8 from 2009-03-25
- 1.2.7 from 2008-12-19
- 1.2.6 from 2008-08-12
- 1.2.5 from 2008-07-30
- 1.2.4 from 2008-07-26
- 1.2.3 from 2008-05-28
- 1.2.2 from 2008-04-14
- 1.2.1 from 2008-01-01
- 1.2.0 from 2007-12-12
- 1.1.1 from 2007-11-30
- 1.1.0 from 2007-11-27
- 1.0.0 from 2007-09-21
Don't hesitate to add your wishes here.
3.6.2 from 2016-05-06
Bug fix: the constant COL_CreationDateName should be COL_CreationDate of course. However, COL_CreationDateName has been marked as deprecated and COL_CreationDate has been introduced. If you have been using COL_CreationDateName you should change this but for a while you will be okay.
3.6.1 from 2016-04-15
Important bug fix! Three ⎕NA calls were not compatible with 64-bit Windows. The bug was quite unlikely to show (which is why it was not detected by the test cases) but strangely 100% reproducible in one particular application.
3.6.0 from 2016-03-23
- Documentation converted to Markdown (requires at least ADOC 5.0).
3.5.1 from 2015-08-16
Bug fix: ExpandPath returned rubbish when path contained a " character.
3.5.0 from 2015-05-25
New method HasSubDirs.
- Documentation improved.
Bug fix: Dir ignored any setting of noOf.
3.4.1 from 2015-01-19
⎕IO and ⎕ML are fully isolated now, meaning that any function has just one setting of ⎕IO - within any WinFile function the original setting won't change.
3.4.0 from 2015-01-10
- APLinline code is now marked up with ticks.
Version now returns just the name, no path.
3.3.1 from 2014-12-16
ListFilesOnly dropped the first file when a wildcard character was used.
3.3.0 from 2014-11-01
All ⎕NA calls refactored: WinFile is now 64 bit save and all pointer are of type P now.
3.2.0 from 2014-08-07
New method ListFilesOnly which returns all files but no directories.
Bug fix: ListDirsOnly failed to return any folders in case there were more files in the folder to be scanned than specified as "BlockSize" (2000).
3.1.0 from 2014-06-04
Significant performance improvement on Dir, DirX and DateOf on large folders.
Significant performance improvement on ListDirsOnly: 2.5 times faster.
Dir and DirX now ignore error 5 (access denied) with ('Recurcive' 1); so far it did crash.
PolishCurrentDir now returns a result.
- Signalling errors improved. So far sometimes a problem was blurred by incorrect messages and return codes.
"NoOf" is now honored by Dir, too.
New parameter "NoOfEach" for Dir and DirX. Works like "NoOf" but on every (sub-)directory found. Mainly for test cases introduced.
Setting "NoOf" did not help much in case of ('Recursive' 1) with the first sub-directory holding a large number of files. This works much better now.
New parameter "IgnoreRecycleBin": by default recycle bins are now ignored.
Bug fix in CreateTempFolder: absolute ref to #.WinFile removed.
3.0.4 from 2014-02-19
- Cleaned up and improved test cases.
3.0.3 from 2014-02-15
Dir and DirX are more effective with recursive directories with large amounts of files to be reported.
3.0.2 from 2014-02-07
Error trapping in GetTempFilename was too generous (0). This is now 22. Was caused by a "FILE SYSTEM TIES USED UP".
3.0.1 from 2014-01-23
The parameter NoOf on DirX did only work properly on one recursion level. This is a long-standing bug.
3.0.0 from 2014-01-14
Complete rewrite of Dir and DirX. Effects:
- Faster, although this will be felt only on large results, and when the new parameters are used.
There are a couple of new parameters: BlockSize, Sort, Cols`.
- Parameters can now be passed by a parameter space.
New methods CreateDirXParms and CreateDirParms.
2.4.4 from 2013-12-21
GetTempFileName sometimes does not deliver a unique filename when it should. The problem is reproducible under Windows 7. We now compile a proper temporary filename ourselves and check.
Delete now comes with a small delay at the end of the function to avoid timing issues.
2.4.3 from 2013-12-16
- Character removed from the script that made it incompatible with the Classic version of Dyalog.
WriteAnsiFile sometimes (very rarely) failed when trying to create a file. Timing problem after a ⎕NERASE.
2.4.2 from 2013-10-17
- Bug fix in DirX: under rare circumstances the function crashed when a Windows error occurred.
2.4.1 (not released)
- Improvement on documentation.
2.4.0 from 2013-06-03
Dir and DirX had a sorting problem caused by uppercase/lowercase.
2.3.9 from 2013-03-15
Performance of the DoesExist*-methods slightly improved.
2.3.8 from 2013-03-05
The sort sequence of the rows returned by DirX is wrong when special characters like # are involved. The fix makes sure that the rows always return . and .. as the first two rows.
2.3.7 from 2013-03-01
For almost twenty years DoesExistDir was buggy, due to an error in the Microsoft documentation. Only now did it make an appearance. For details see there.
2.3.6 from 2013-02-08
Handling error codes in DirX was faulty. While the error codes for "File not found" and "Directory not found" are converted correctly into empty results (that's how WinFile is designed) other (quite rare) error codes where ignored.
2.3.5 from 2012-11-13
Performance penalty in Dir / DirX fixed. Thanks to Ray Cannon.
2.3.4 from 2012-11-05
MoveTo did not work with a target dir with a UNC names.
2.3.3 from 2012-11-05
Bug in CheckPath fixed introduced with version 2.3.2.
Neither Dir nor DirX were able to deal with UNC names.
2.3.2 from 2012-10-05
CheckPath refused to deal properly with UNC names like \\servername\pathname\
2.3.1 from 2012-10-10
Bug in WriteAnsiFile fixed.
2.3.0 from 2012-09-29
New method PolishCurrentDir added.
2.2.2 from 2012-09-27
WinFile was "ADOCable" anymore due to a typo.
2.2.1 from 2012-09-02
WinFile was not compatible with Dyalog Classic anymore.
2.2.0 from 2012-05-05
New method IsValidWin32Filename
2.1.1 from 2012-02-16
Bug fixed in CopyTo: return code was ignored so far. (Appropriate test case got added).
2.1.0 from 2012-01-24
New method ExpandEnv.
New method ExpandPath.
2.0.3 from 2012-01-04
Since the introduction of Unicode sorting of Dir and DirX are wrong.
2.0.2 from 2012-01-04
- The 2.0.1 patch was partly okay, but "?" together with a wildcard still didn't work properly under certain circumstances.
2.0.1 from 2011-12-30
Thanks to a bug in Microsoft's "Find*File" functions both Dir and DirX sometimes delivered invalid results when the pattern contained a "?". This is now fixed in WinFile.
2.0.0 from 2011-12-17
New method DirTree.
1.9.1 from 2011-12-15
Redundant code removed: Uppercase, Lowercase.
1.9.0 from 2011-12-15
New methods MoveToWithRC and CopyToWithRC introduced. These new methods return a return code and a textual message rather than throwing an exception.
The return codes thrown by MoveTo and CopyTo are the real OS return codes now. Prior to version 1.9.0 a DOMAIN ERROR was thrown.
1.8.1 from 2011-11-05
- Documentation improved.
- Couple of argument checks implemented.
- Test_004 enhanced (checks prototype now for long and short filename).
- INI files introduced for local (machine) dependencies.
1.8.0 from 2011-09-23
Two new methods introduced: IsFilenameOkay and IsFoldernameOkay
1.7.4 from 2011-08-29
New method PWD (print working directory) introduced.
1.7.4 from 2011-08-29
CheckPath crashed when an error occurred while creating a directory
1.7.3 from 2011-08-12
Due to problems with unnamed namespaces in versions prior to 13.0 WinFile needed to be changed in order to avoid trouble when it's used as part of a Dyalog User Command.
1.7.2 from 2011-08-07
- All test cases are rewritten
DateOf returned a result too deeply nested whith "All" as left argument.
The field COL_LastWriteDate had the wrong value.
RmDir returned a 0 (success) for a directory name it could not find.
IsDirEmpty could deal with double-quotes around the paths.
MoveTo crashed on invalid left/right argument (empty vector)
1.7.1 from 2011-08-02
- Size of the script reduced (width!). Important in order to avoid WS FULL when using Dyalog's "Search" tool.
1.7.0 from 2011-07-11
Fields introduced for indexing the result of DirX, for example: #.WinFile.((DirX'*')[;COL_Name,FA_DIRECTORY])
1.6.1 from 2011-07-04
When the parameters ('Recursive' 1) and ('FileTime' 1) were both specified then the files found in sub-directories ddid not have a timestamp.
Comments in DirX as well CopyTo needed improvement.
1.6.0 from 2011-06-02
This version does not use APLTeamUtils any longer but APLTreeUtils instead.
1.5.1 from 2011-05-03
Check for invalid wildcards in Dir and DirX was invalid: "?"would pass the test.
Dir did not return a result on a simple filename. Although this is not very useful it should work. (DirX works fine).
Dir and DirX do not return the correct result when wildcards were used in the pattern and a recursive search was performed.
Path/filenames with a double-quotes made several methods in #.WinFile crash.
1.5.0 from 2011-05-02
New method DoesExist: returns 1 in case the right argument identifies either a file or a directory.
ListDirsOnly got smarter: supports wildcard chars now and work out whether the left argument is a search pattern or a folder.
These methods now throw an error in case a wildcard char is specified: Delete, DoesExist, DoesExistDir, DoesExistFile
1.4.6 from 2011-05-02
Dir and DirX did not process correctly question marks in their search pattern argument.
1.4.5 from 2011-04-21
- All methods now accepts filenames and path names surrounded by ".
All methods set both, ⎕IO and ⎕ML for good reasons.
1.4.4 from 2011-04-09
- 8.3 names returned by DirX were rubbish in case the "long" filename was 8 or less chars long.
- Empty folders were reported when a mask was specified that does not only contain a "*".
1.4.3 from 2011-04-05
Both, Dir as well as DirX support wildcard characters now together with ('Recursive' 1) fully.
1.4.2 from 2011-03-01
- Nothing new: wrong workspace saved in repository...
1.4.1 from 2011-03-01
Bug fix in DateOf: left a handle open which could cause an access rights problem elsewhere.
1.4.0 from 2011-03-01
DoesExistDir, IsDirEmpty & DoesExistFile improved: much faster now.
1.3.2 from 2010-12-15
- This version is again compatible with the Classic version of Dyalog
1.3.1 from 2010-02-20
- Typos in the doc corrected
- New method "History" introduced
1.3.0 from 2009-08-09
- Minor fix.
1.2.9 from 2009-07-05
- All methods now return at least an empty shy result.
1.2.8 from 2009-03-25
- All references to AV replaced by UCS.
1.2.7 from 2008-12-19
- ML localyzed and set to circumvent a bug in Dyalog (ML pretends to be 3 but is not)
1.2.6 from 2008-08-12
- Documentation improved
1.2.5 from 2008-07-30
- Addressing APLTeamUtils was still wrong elsewhere
1.2.4 from 2008-07-26
- Addressing APLTeamUtils was wrong (#.APLTeamUtils instead ##.APLTeamUtils)
RmDir did not handle "Path not found" and empty right argument correctly
GetTempFilenName always returned the same temp file name
1.2.3 from 2008-05-28
Some minor improvements to the documentation
1.2.2 from 2008-04-14
Cd did not add a \ to the end of a path but should
1.2.1 from 2008-01-01
Some minor bug fixed in "RmDir" and "Delete"
1.2.0 from 2007-12-12
Version 12-compatible now
1.1.1 from 2007-11-30
Bug in DirX fixed: single file in a folder was not handled correctly
1.1.0 from 2007-11-27
Dir and DirX speed improved
1.0.0 from 2007-09-21
Very first relase