Size: 1877
Comment: New version
|
Size: 2523
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Dealing with Files and Directories = {{{WinFile}}} is part of the CategoryAplApl project. |
= FileAndDirs: Dealing with Files and Directories = {{{FileAndDirs}}} is part of the CategoryAplTree project. |
Line 7: | Line 8: |
Nowadays if there is a need to deal with directories and files, there is .NET, isn't it? Well, some companies have decided against .NET, so there is still the need for a .NET-free solution to this. This is what the WinFile class is designed for. | |
Line 9: | Line 9: |
But there is more to say to this: try to get a DirectoryInfo for a directory with, say, 100,000 files. Then compare with this class. | With version 15.0 Dyalog has introduced several new system functions that make it much easier to write platform independent code when it comes to dealing with files and directories. |
Line 11: | Line 11: |
See the list of methods (generated with [[ADOC]]): | However, there are some gaps left: copying and moving files for example, or a recursive directory listing. `FilesAndDirs` aims to close this gap: it offers the same functionality for Windows, Linux and Mac OS. == Slashes and backslashes == Under Windows the backslash `\` character is used as delimiter. Under Linux and Mac OS it is the `/` character. However, Windows is willing to accept the `/` rather than the `\` in most cases, and in all when we do something by a program. The easiest way therefore seems to be to use `/` everywhere. Almost. As it turns out there are several occasions when one still has to settle for the `\`: * Calls to third party software. * Calls to .NET assemblies. * Setting properties like `Directory` in the `FileBox` GUI objects. For that reason since version 1.3 all methods of `FilesAndDirs` accept both the `/` and the `\` characters as directory seperators but when returning a result that is a path name then it will always make sure that the correct separator for the given operating system is used. That's the reason why the class offers method like `Exists`, `CreateFile`, `DeleteFile` and even `NNAMES` and `NCREATE`: they don't do much more than their system function equivalents except that they normalize any filenames and directory names. Of course this means that `FilesAndDirs` cannot deal under Linux and Mac OS with names that contain a `\`, but if you try to write platform independent code then you must not do this anyway, and most likely you shouldn't even if you don't. |
Line 14: | Line 32: |
Line 15: | Line 34: |
*** WinFile (Class) *** Shared Methods: |
|
Line 20: | Line 37: |
DateOf Delete |
CopyTree CreateFile CurrentSep DeleteFile |
Line 23: | Line 42: |
DirX DoesExistDir DoesExistFile GetAllDrives GetDriveAndType GetTempFileName |
EnforceBackslash EnforceSlash Exists GetNewLineCharsFor GetTempFilename |
Line 30: | Line 48: |
History IsDirEmpty ListDirsOnly |
IsDir IsFile IsSymbolicLink ListDirs ListFiles |
Line 35: | Line 55: |
ReadAnsiFile | MoveTree NCREATE NNAMES NormalizePath PolishCurrentDir PWD |
Line 38: | Line 63: |
WriteAnsiFile YoungerThan |
|
Line 41: | Line 64: |
Find out more by looking into the documentation [[attachment:WinFileDocumentation.html]] | |
Line 43: | Line 65: |
== History == For a full version history: [[WinFile/History|History]] |
Find out more by looking into the documentation [[attachment:FilesAndDirsDocumentation.html]] |
Line 46: | Line 67: |
== Version Information == ||Original author: ||KaiJaeger || ||Responsible: ||KaiJaeger || ||Email: || kai@aplteam.com || ||Current state: ||1.3.2 || |
`FilesAndDirs` needs version 15.0 Unicode of Dyalog APL, or better. |
Line 52: | Line 69: |
== Download == You have two options: you can either download the script for usage: [[http://aplwiki.com/WinFile?action=AttachFile&do=get&target=WinFile.ZIP|Download WinFile script right now]] or get the whole thing from the AplWikiRepository, including the development workspace and the script and maybe more for any development or for running the test cases: {{{ svn list svn://aplteam.com/os/dyalog/WinFile/tags }}} If you plan to contribute please note that all stuff published as part of the APLAPL project must follow certain [[AplAplStandards|APLAPL-specific standards]]. |
<<Include(APLTreeDownloads)>> |
Line 66: | Line 72: |
CategoryAplApl | CategoryAplTree |
FileAndDirs: Dealing with Files and Directories
FileAndDirs is part of the CategoryAplTree project.
Overview
With version 15.0 Dyalog has introduced several new system functions that make it much easier to write platform independent code when it comes to dealing with files and directories.
However, there are some gaps left: copying and moving files for example, or a recursive directory listing.
FilesAndDirs aims to close this gap: it offers the same functionality for Windows, Linux and Mac OS.
Slashes and backslashes
Under Windows the backslash \ character is used as delimiter. Under Linux and Mac OS it is the / character. However, Windows is willing to accept the / rather than the \ in most cases, and in all when we do something by a program. The easiest way therefore seems to be to use / everywhere.
Almost. As it turns out there are several occasions when one still has to settle for the \:
- Calls to third party software.
- Calls to .NET assemblies.
Setting properties like Directory in the FileBox GUI objects.
For that reason since version 1.3 all methods of FilesAndDirs accept both the / and the \ characters as directory seperators but when returning a result that is a path name then it will always make sure that the correct separator for the given operating system is used.
That's the reason why the class offers method like Exists, CreateFile, DeleteFile and even NNAMES and NCREATE: they don't do much more than their system function equivalents except that they normalize any filenames and directory names.
Of course this means that FilesAndDirs cannot deal under Linux and Mac OS with names that contain a \, but if you try to write platform independent code then you must not do this anyway, and most likely you shouldn't even if you don't.
Methods
Cd CheckPath CopyTo CopyTree CreateFile CurrentSep DeleteFile Dir EnforceBackslash EnforceSlash Exists GetNewLineCharsFor GetTempFilename GetTempPath IsDir IsFile IsSymbolicLink ListDirs ListFiles MkDir MoveTo MoveTree NCREATE NNAMES NormalizePath PolishCurrentDir PWD RmDir Version
Find out more by looking into the documentation FilesAndDirsDocumentation.html
FilesAndDirs needs version 15.0 Unicode of Dyalog APL, or better.