You can select from this popup and then just change the name to suit your tastes. Once you have a file type defined in your project, you refer to it in your project's code by its name. Most methods and properties of folderItems are straightforward, but a word needs to be said about how to use folderItems to navigate up and down the hierarchy. A folderItem's containing folder is obtained as its parent property. Thanks to the parent property and the child method, you should never have to manipulate pathnames as strings at all.
Clearly recursion is called for.
The most flexible way to read from or write to a file's data fork is by way of a binaryStream class instance, which essentially represents the data fork. When you are finished reading and writing data, you must send the binaryStream object the close message. There are two great things about a binaryStream as a representation of a file's data fork. One is that you can read or write starting at any position in the data fork. The second great thing about a binaryStream is that, like a memoryBlock, you can manipulate arbitrary sorts of data.