Differences between revisions 2 and 56 (spanning 54 versions)
Revision 2 as of 2007-11-27 19:58:33
Size: 1011
Editor: KaiJaeger
Comment:
Revision 56 as of 2016-09-15 14:09:02
Size: 2768
Editor: KaiJaeger
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Dealing with Files and Directories = = FileAndDirs: Dealing with Files and Directories =
Line 3: Line 3:
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. {{{FileAndDirs}}} is part of the CategoryAplTree project.
Line 5: Line 5:
See the list of methods (generated with [ADOC:ADOC]): <<TableOfContents>>

== 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 ==
Line 8: Line 34:
*** WinFile (Class) ***
Shared Methods:
Line 13: Line 37:
  DateOf
  Delete
  CopyTree
  CreateFile
  CurrentSep
  DeleteFile
Line 16: Line 42:
  DirX
  DoesExistDir
  DoesExistFile
  GetAllDrives
  GetDriveAndType
  GetTempFileName
  EnforceBackslash
  EnforceSlash
  Exists
  GetNewLineCharsFor
  GetTempFilename
Line 23: Line 48:
  History
  IsDirEmpty
  ListDirsOnly
  IsDir
  IsFile
  IsSymbolicLink
  ListDirs
  ListFiles
Line 28: Line 55:
  ReadAnsiFile   MoveTree
  NCREATE
  NNAMES
  NormalizePath
  PolishCurrentDir
  PWD
Line 31: Line 63:
  WriteAnsiFile
  YoungerThan
Line 35: Line 65:
Find out more by looking into the documentation attachment:WinFileDocumentation.html Find out more by looking into the documentation [[attachment:FilesAndDirsDocumentation.html]]
Line 37: Line 67:
== Project Page ==
Line 38: Line 69:
For bug reports, future enhancements and a full version history see FilesAndDirs/ProjectPage
Line 39: Line 71:
||Original author:||KaiJaeger||
||Responsible:||KaiJaeger||
||Email:||kai@aplteam.com||
||Current state:||1.1||
== Version Information ==
||Original author: ||KaiJaeger ||
||Responsible: ||KaiJaeger ||
||Email: || kai@aplteam.com ||
Line 44: Line 76:
Goto the [:WinFileDownloadPage:WinFileDownloadPage] `FilesAndDirs` needs version 15.0 Unicode of Dyalog APL, or better.

<<Include(APLTreeDownloads)>>
Line 46: Line 81:
CategoryOpenSourceApl CategoryAplAplDyalog 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 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:

KaiJaeger

Responsible:

KaiJaeger

Email:

kai@aplteam.com

FilesAndDirs needs version 15.0 Unicode of Dyalog APL, or better.


CategoryAplTree

FilesAndDirs (last edited 2018-03-03 11:44:34 by KaiJaeger)