The modern File Manager is built around the FSRef type. FSSpec is the old way and has been deprecated and should not be needed any longer. FSRef is an opaque 80 byte structure that refers to an existing file. To refer to a non-existing file (yet to be created) you need the FSRef for the parent directory and the new file's name.
Once you have a file's FSRef you can ask for the file name, a URL path name, or a system full path name.
The files names are of type HFSUniStr255. This is a string of Unicode characters (UTF-16) preceded by a 2-byte length character.
It is also possible, though not recommended, to use POSIX path names FSRef vs POSIX.
Unfortunately there are even in 10.4.7 non-deprecated APIs that require FSSpecs and have no modern (FSRef) replacement, e.g. ATSFontGetFileSpecification(). Fortunately, there a number of functions to deal with old-style FSSpec records, namely to construct FSSpecs and to convert these to/from FSRefs. In addition to that, there is the MoreFilesX package [1] a collection of useful high-level File Manager routines. It provides a number of additional conversions that are missing in the native API but can be highly valuable when dealing with FSSpecs.
Where is the current working directory set when you run your application? [Where's my File?] Also, contains a snippet on how to set your working directory.
CreateFile Simple C++ method the shows how to create a new file.
CreateFolder Simple C++ method that shows how to create a new folder.
SetFinderInfo Simple C++ method that shows how to fill in the fileType and fileCreator.
[StraightSilver] - AppleScript website example.
IsDirectory Simple C++ method that shows how determine if an FSRef refers to a file or directory.
GetFileSize Method to get the size of a file, given an FSRef.
Document Bundles Notes on creating your own custom document bundle.
Uniform Type Identifiers How to identify different file types.
GetDiskName Get the name of the disk a volume is on.
Where Am I? Where Am I. Finding the application's path.
[Iterating a Directory] DTS example.
[Apple Script] Apple Script example.
Ran into some table corruption issues, and had to load a really old backup. Sorry!