My guess is that in your example “XP” is a subdirectory of the images directory of your current suite. When you specify a directory, you have to either provide the full path starting at the root directory of the file system, or a relative path starting from the current working directory. If the current working directory is ~/Documents/, and your suite is in that directory, then you could specify the relative path as
set currOS to "MySuite.suite/Images/XP"
or you could specify the full path as
set currOS to "/Users/Allen/Documents/MySuite.suite/Images/XP"
There are some tricks you can use to get some of the path information without having to know it or to type it. One I like to use to get the full path to the Images directory (or a subdirectory) requires that you already know the name of an image in that directory:
set itemsDir to the directory of file(imageInfo("XP/someImage").imageName)
Similarly, if you want to get the full path to the Images directory of the suite that contains the current script, you can do this:
put my directory into scriptDir
delete the last word delimited by "/" of scriptDir
put scriptDir & "/Images/XP" into currOS
The fact that you can refer to image names in commands and functions using a path relative to the Images directory is a special case – the Eggplant commands and functions use an internally specified search path that includes the Image directories in open suites and helper suites. Eggplant just “knows” that images have to be in Image directories or their subdirectories. But the SenseTalk file system commands and functions work outside of that restriction, so you need to specify paths to things in the same way that you have to when you do file system operations in a terminal window.
I hope this explanation has done more to clarify than to confuse. Let me know if you have any other questions.