From Amiga Coding
Revision as of 12:32, 5 November 2015 by Daedalus (talk | contribs)
Jump to: navigation, search

The dos.include.ab3 Include file contains some useful functions for handling paths, directories and general DOS-related tasks.

Path Handling


This function adds the two given string arguments together and returns the result as an AmigaDOS-legal path. Very useful for adding a filename onto a directory name to produce the full path, but without having to worry about whether the path string ends in :, / or just the drawer name: fullpath$ = dos_AddPart{"Workbench:System", "Format"} fullpath2$ = dos_AddPart{"Workbench:System/", "Format"} Both examples above will return the string "Workbench:System/Format".


This function returns the part of the given string that constitutes the directory in which the target of the given path resides. Useful for getting the directory of a file: MyDirectory$ = dos_PathPart{"Workbench:System/Format"} Will return the path "Workbench:System".


Similar to dos_PathPart{} above, but returns the filename instead: MyFile$ = dos_FilePart{"Workbench:System/Format"} Will return the string "Format".


This function returns the full path to your program. This can be useful to determine the absolute path to any files or directories in your program's directory: MyDir$ = dos_GetProgDir{"Projects:MyProgram"} The string argument given is only used when the program is run directly from the editor.

File Checking


This function checks if the given file exists, and returns True (-1) if it does or False (0) otherwise: result.l = dos_Exist{"Workbench:System/Format"} This should return True unless someone has moved the Format command on your system...


This function checks if the given path is a directory, and returns True (-1) if so. If the path is a file or doesn't exist, dos_IsDir will return False (0): result.l = dos_IsDir("SYS:System/Format") This will return False (0).


This function tries to open a file for reading and close it again. It will return True(-1) if everything worked ok, or the DOS error code if it failed. This means it's important to check for a result equal to True instead of just a non-zero result. For example: If dos_Check("Files:Test-File")

 NPrint "File ready"


 NPrint "File error!"

End If This will always say "File Ready" because the result will either be true (-1), or a numerical value corresponding to the DOS error code. The correct way to do this is: If dos_Check("Files:Test-File")

 NPrint "File ready"


 NPrint "File error!"

End If

This function does not try to write to the file, so it won't create a blank file if the filename doesn't exist. Instead, the DOS error code for "Object not found" (205) will be returned if the specified file doesn't exist.


This function can be used to check if a particular library is present and of an appropriate version. It is important to check that libraries of the correct version exist before using them, otherwise crashes can occur. This function will return True (-1) if the specified library exists and has the version number specified or above, or False (0) otherwise: If dos_CheckLib("Workbench.library", 44) = False

 NPrint "This program requires at least Workbench 3.5 to work!"

End If Internal