Size: 2415
Comment:
|
Size: 2768
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 19: | Line 19: |
Yes and no. A backslash character is under Linux potentially a legal character in a filename or a directory name. That can cause problems of course if you specify a `\` character under Linux by accident. | Almost. As it turns out there are several occasions when one still has to settle for the `\`: |
Line 21: | Line 21: |
`FilesAndDirs` normalizes all filenames and all directory names for you, so you cannot forget this. That's the reason why the class offers method like `Exists`, `CreateFile` and `DeleteFile`: they don't do much more than their system function equivalents, accept that they normalize any filenames and directory names. | * Calls to third party software. * Calls to .NET assemblies. * Setting properties like `Directory` in the `FileBox` GUI objects. |
Line 23: | Line 25: |
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 should not do this anyway. | For that reason since version 1.3 all methods of `FilesAndDirs` except 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 accept 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 33: | Line 39: |
CurrentSep | |
Line 35: | Line 42: |
EnforceBackslash EnforceSlash |
|
Line 47: | Line 56: |
NCREATE NNAMES |
FileAndDirs: Dealing with Files and Directories
FileAndDirs is part of the CategoryAplTree project.
Contents
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 except 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 accept 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
Project Page
For bug reports, future enhancements and a full version history see FilesAndDirs/ProjectPage
Version Information
Original author: |
|
Responsible: |
|
Email: |
FilesAndDirs needs version 15.0 Unicode of Dyalog APL, or better.