home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-08 | 23.1 KB | 761 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWFileSp.cpp
- // Release Version: $ 1.0d11 $
- //
- // Copyright: 1995 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #include "FWOS.hpp"
-
- #ifndef FWFILESP_H
- #include "FWFileSp.h"
- #endif
-
- #ifndef FWFILESY_H
- #include "FWFileSy.h"
- #endif
-
- #ifndef FWSTRTOO_H
- #include "FWStrToo.h"
- #endif
-
- #ifndef FWEXCDEF_H
- #include "FWExcDef.h"
- #endif
-
- #ifndef FWFILPAR_H
- #include "FWFilPar.h"
- #endif
-
- #ifndef FWBNDSTR_H
- #include "FWBndStr.h"
- #endif
-
- #if defined(FW_BUILD_MAC) && !defined(__ERRORS__)
- #include <Errors.h>
- #endif
-
- #if defined(FW_BUILD_MAC) && !defined(__FINDER__)
- #include <Finder.h>
- #endif
-
- #if defined(FW_BUILD_WIN) && !defined(__IO_H)
- #include <io.h>
- #endif
-
- #if FW_LIB_EXPORT_PRAGMAS
- #pragma lib_export on
- #endif
-
- //========================================================================================
- // CLASS FW_CFileSpecification
- //========================================================================================
-
- #pragma segment FWCFileSpecification
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::FW_CFileSpecification
- //
- // Create a file specification from a directory and a file name.
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification::FW_CFileSpecification(const FW_CDirectorySpecification& directory,
- const FW_CString& fileName)
- {
- #ifdef FW_BUILD_WIN
- directory.GetFullPath(fFileInfo);
-
- if (fileName.GetLength() > 0)
- FW_CPrivFileSystemParser::AddDelimiter(fFileInfo);
-
- fFileInfo += fileName;
-
- // Verify that path exists.
- FW_CDynamicString tempString;
- if (!FW_CPrivFileSystemParser::WinGetPathName(fFileInfo, tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
-
- if (!FW_CFileSystem::WinPathExists(tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
- #endif
-
- #ifdef FW_BUILD_MAC
- FW_CFileSystem::FileError theError = FW_CFileSystem::kNoError;
- Str255 macFileName;
- FW_CString255 partialPathName;
-
- fFileType = FW_kDefaultFileType;
- fCreatorType = FW_kDefaultCreatorType;
-
- directory.MacGetFSSpec(fFileInfo);
- partialPathName.ReplaceAll((FW_PascalChar*)&fFileInfo.name);
- partialPathName.Prepend(&FW_kPathDelimiter, 1);
-
- FW_CPrivFileSystemParser::AddDelimiter(partialPathName);
- partialPathName += fileName;
- partialPathName.ExportPascal((FW_PascalChar*)&macFileName);
-
- theError = ::FSMakeFSSpec(fFileInfo.vRefNum, fFileInfo.parID, macFileName, &fFileInfo);
- if ((theError != FW_CFileSystem::kNoError) && (theError != FW_CFileSystem::kNoFileFound))
- {
- FSSpec dirFSSpec;
- directory.MacGetFSSpec(dirFSSpec);
-
- fFileInfo.vRefNum = dirFSSpec.vRefNum;
- fFileInfo.parID = dirFSSpec.parID;
-
- FW_ASSERT(fileName.GetLength() < 64);
- partialPathName.ExportPascal((FW_PascalChar*)&fFileInfo.name);
-
- ThrowError(theError);
- }
-
- #endif
-
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::FW_CFileSpecification
- //
- // Initialize the specification with fileName. If fileName is a partial pathname, then
- // the current working directory is used.
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification::FW_CFileSpecification(const FW_CString& fileName)
- {
- #ifdef FW_BUILD_WIN
- fFileInfo = fileName;
- FW_CPrivFileSystemParser::WinExpandPartialPath(fFileInfo);
-
- // Verify that path exists.
- FW_CDynamicString tempString;
- if (!FW_CPrivFileSystemParser::WinGetPathName(fFileInfo, tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
-
- if (!FW_CFileSystem::WinPathExists(tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
- #endif
-
- #ifdef FW_BUILD_MAC
- FW_CFileSystem::FileError theError = FW_CFileSystem::kNoError;
- Str255 macFileName;
-
- fFileType = FW_kDefaultFileType;
- fCreatorType = FW_kDefaultCreatorType;
-
- fileName.ExportPascal((FW_PascalChar*)&macFileName);
-
- theError = ::FSMakeFSSpec(0, 0, macFileName, &fFileInfo);
- if ((theError != FW_CFileSystem::kNoError) && (theError != FW_CFileSystem::kNoFileFound))
- {
- fFileInfo.vRefNum = 0;
- fFileInfo.parID = 0;
- FW_ASSERT(fileName.GetLength() < 64);
- fileName.ExportPascal((FW_PascalChar*)&fFileInfo.name);
- ThrowError(theError);
- }
- #endif
-
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::FW_CFileSpecification
- //
- // Copy constructor
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification::FW_CFileSpecification(const FW_CFileSpecification& specification) :
- fFileInfo(specification.fFileInfo)
- #ifdef FW_BUILD_MAC
- , fFileType(specification.fFileType)
- , fCreatorType(specification.fCreatorType)
- #endif
- {
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::~FW_CFileSpecification
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification::~FW_CFileSpecification()
- {
- FW_START_DESTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::GetName
- //
- // Returns the name of the file. This doesn't return the path information, just the
- // file name.
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::GetName(FW_CString& fileName) const
- {
- // FW_CFileSystem::FileError theError = FW_CFileSystem::kNoError;
-
- #ifdef FW_BUILD_WIN
- FW_CDynamicString parsedName;
-
- if (FW_CPrivFileSystemParser::GetFileName(fFileInfo, parsedName))
- fileName = parsedName;
- else
- FailOnError(FW_CFileSystem::kBadFileName);
- #endif
-
- #ifdef FW_BUILD_MAC
- fileName.ReplaceAll((FW_PascalChar*)&fFileInfo.name);
- #endif
-
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::GetParentDirectory
- //
- // Returns the path information for this file as a directory specification. This string
- // will contain a trailing delimiter character.
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification FW_CFileSpecification::GetParentDirectory() const
- {
- FW_CDirectorySpecification returnDirectory;
-
- #ifdef FW_BUILD_WIN
- FW_CDynamicString tempPathName;
-
- if (FW_CPrivFileSystemParser::WinGetPathName(fFileInfo, tempPathName))
- {
- // This is necessary because we can't set the whole path at once with operators.
- FW_CDirectorySpecification tempDirectory(tempPathName);
- returnDirectory = tempDirectory;
- }
- else
- {
- // Path should already have been verified.
- FailOnError(FW_CFileSystem::kPathNotFound);
- }
- #endif
-
- #ifdef FW_BUILD_MAC
- FailOnError(FW_CPrivFileSystemParser::MacGenerateDirectory(fFileInfo.vRefNum, fFileInfo.parID, returnDirectory));
- #endif
-
- return returnDirectory;
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::GetFullPath
- //
- // Return the path and file name for this file. The user should pass in a dynamic
- // string so as to guarantee that the path will fit. The path should be a fully
- // expanded pathname.
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::GetFullPath(FW_CString& fullPathName) const
- {
- #ifdef FW_BUILD_WIN
- fullPathName = fFileInfo;
- #endif
-
- #ifdef FW_BUILD_MAC
- fullPathName.ReplaceAll((FW_PascalChar*)&fFileInfo.name);
- FW_CFileSystem::FileError theError = FW_CFileSystem::kNoError;
-
- theError = FW_CPrivFileSystemParser::MacGenerateFullPathName(fFileInfo.vRefNum, fFileInfo.parID, fullPathName);
- FailOnError(theError);
-
- #endif
-
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::operator==
- //
- // Equality operator. Compares the location of each file. If the location's match, then
- // the file is a match.
- // Note that the Windows side is case insensitive. On the Mac, FSSMakeFSSpec should
- // normalize file names so conversion should not be necessary.
- //----------------------------------------------------------------------------------------
-
- FW_Boolean FW_CFileSpecification::operator==(const FW_CFileSpecification& theOtherFile) const
- {
- #ifdef FW_BUILD_WIN
- FW_CDynamicString tempString1(fFileInfo);
- FW_CDynamicString tempString2(theOtherFile.fFileInfo);
-
- tempString1.ToUpper();
- tempString2.ToUpper();
- return (tempString1 == tempString2);
- #endif
-
- #ifdef FW_BUILD_MAC
- if ((fFileInfo.vRefNum == theOtherFile.fFileInfo.vRefNum) && (fFileInfo.parID == theOtherFile.fFileInfo.parID))
- {
- FW_CDynamicString fileName1;
- FW_CDynamicString fileName2;
-
- fileName1.ReplaceAll((FW_PascalChar*)&fFileInfo.name);
- fileName2.ReplaceAll((FW_PascalChar*)&theOtherFile.fFileInfo.name);
-
- fileName1.ToUpper();
- fileName2.ToUpper();
- if (fileName1 == fileName2)
- return (fFileType == theOtherFile.fFileType && fCreatorType == theOtherFile.fCreatorType);
- }
-
- return (FALSE);
- #endif
-
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::operator=
- //
- // Copies info over from pre-verified file specification. Shouldn't need to do any
- // checks.
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification& FW_CFileSpecification::operator=(const FW_CFileSpecification& theOtherFile)
- {
- fFileInfo = theOtherFile.fFileInfo;
- #ifdef FW_BUILD_MAC
- fFileType = theOtherFile.fFileType;
- fCreatorType = theOtherFile.fCreatorType;
- #endif
- return (*this);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::operator=
- //
- // Set the name of the file. This only changes the name, it doesn't change the previous
- // path. Reverifies the path with the new fileName.
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification& FW_CFileSpecification::operator=(const FW_CString& fileName)
- {
- #ifdef FW_BUILD_WIN
- FW_CDynamicString tempPathName;
-
- if (FW_CPrivFileSystemParser::WinGetPathName(fFileInfo, tempPathName))
- {
- FW_CPrivFileSystemParser::AddDelimiter(tempPathName);
- fFileInfo = tempPathName;
- }
-
- fFileInfo += fileName;
-
- // Verify that path exists.
- FW_CDynamicString tempString;
- if (!FW_CPrivFileSystemParser::WinGetPathName(fFileInfo, tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
-
- if (!FW_CFileSystem::WinPathExists(tempString))
- FailOnError(FW_CFileSystem::kPathNotFound);
- #endif
-
- #ifdef FW_BUILD_MAC
- FW_CFileSystem::FileError theError = FW_CFileSystem::kNoError;
- short vRefNum = fFileInfo.vRefNum;
- long dirID = fFileInfo.parID;
- Str255 macFileName;
-
- fFileType = FW_kDefaultFileType;
- fCreatorType = FW_kDefaultCreatorType;
-
- fileName.ExportPascal((FW_PascalChar*)&macFileName);
-
- theError = ::FSMakeFSSpec(vRefNum, dirID, macFileName, &fFileInfo);
- if ((theError != FW_CFileSystem::kNoError) && (theError != FW_CFileSystem::kNoFileFound))
- {
- fFileInfo.vRefNum = vRefNum;
- fFileInfo.parID = dirID;
- FW_ASSERT(fileName.GetLength() < 64);
- fileName.ExportPascal((FW_PascalChar*)&fFileInfo.name);
- ThrowError(theError);
- }
- #endif
-
- return (*this);
- }
-
-
- #ifdef FW_BUILD_WIN
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::WinGetDrive
- //----------------------------------------------------------------------------------------
-
- FW_Char FW_CFileSpecification::WinGetDrive() const
- {
- FW_CharacterPosition colonPosition = -1;
- FW_CDynamicString driveName;
- FW_Char driveLetter = '\0';
-
- // If there's no drive information in the path, get the default drive information.
- if (!FW_CPrivFileSystemParser::WinGetDrivePath(fFileInfo, driveName))
- FailOnError(FW_CFileSystem::kBadFileName);
-
- if (!driveName.FindCharacter(FW_kDriveDelimiter, colonPosition))
- FailOnError(FW_CFileSystem::kNoSuchVolume);
-
- if (colonPosition > 1)
- FailOnError(FW_CFileSystem::kNoSuchVolume);
-
- driveName.ToLower();
-
- #if defined(_MSC_VER) && (_MSC_VER <= 900)
- driveLetter = driveName[(FW_CharacterPosition)(colonPosition - 1)];
- #else
- driveLetter = driveName[colonPosition - 1];
- #endif
-
- if ((driveLetter < 'a') || (driveLetter > 'z'))
- FailOnError(FW_CFileSystem::kBadFileName);
-
- return (driveLetter);
- }
- #endif
-
-
- #ifdef FW_BUILD_WIN
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::WinGetExtension
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::WinGetExtension(FW_CString& extension) const
- {
- if (!FW_CPrivFileSystemParser::GetExtension(fFileInfo, extension))
- extension = "";
- }
- #endif
-
-
- #ifdef FW_BUILD_WIN
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::WinSetExtension
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::WinSetExtension(const FW_CString& extension)
- {
- FW_CDynamicString newFileInfo;
-
- FW_CPrivFileSystemParser::ChangeExtension(fFileInfo, extension, newFileInfo);
- fFileInfo = newFileInfo;
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::FW_CFileSpecification
- //
- // Macintosh FSSpec constructor.
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification::FW_CFileSpecification(const FSSpec& specification) :
- fFileInfo(specification),
- fFileType(FW_kDefaultFileType),
- fCreatorType(FW_kDefaultCreatorType)
- {
- FW_END_CONSTRUCTOR
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::operator=
- //----------------------------------------------------------------------------------------
-
- FW_CFileSpecification& FW_CFileSpecification::operator=(const FSSpec& macSpec)
- {
- fFileInfo = macSpec;
- fFileType = FW_kDefaultFileType;
- fCreatorType = FW_kDefaultCreatorType;
- return (*this);
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::MacGetFSSpec
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::MacGetFSSpec(FSSpec& macSpec) const
- {
- macSpec = fFileInfo;
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::MacSetTypeAndCreator
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::MacSetTypeAndCreator(OSType aFileType, OSType aCreatorType)
- {
- fFileType = aFileType;
- fCreatorType = aCreatorType;
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::MacGetTypeAndCreator
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::MacGetTypeAndCreator(OSType &aFileType, OSType &aCreatorType) const
- {
- aFileType = fFileType;
- aCreatorType = fCreatorType;
- }
- #endif
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::FailOnError
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::FailOnError(short theError) const
- {
- // JEL: I don't know why kNoFileFound is not an error.
- // Ideally, we should eliminate this method entirely, and just
- // call FW_FailOnError directly, and only check for kNoFileFound
- // where it is definitely not an error.
- if (theError != FW_CFileSystem::kNoFileFound)
- FW_FailOnError(theError);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CFileSpecification::ThrowError
- //----------------------------------------------------------------------------------------
-
- void FW_CFileSpecification::ThrowError(short theError) const
- {
- FW_Failure(theError);
- }
-
- //========================================================================================
- // CLASS FW_CDirectorySpecification
- //========================================================================================
- #pragma segment FWCDirectorySpecification
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::FW_CDirectorySpecification
- //
- // Specifies the current working directory.
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification::FW_CDirectorySpecification() :
- fFileSpec((FW_CString32)"")
- {
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::FW_CDirectorySpecification
- //
- // Copy constructor.
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification::FW_CDirectorySpecification(const FW_CDirectorySpecification& specification) :
- fFileSpec(specification.fFileSpec)
- {
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::FW_CDirectorySpecification
- //
- // Specifies the path by string. directoryName can be either a full or partial path
- // name.
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification::FW_CDirectorySpecification(const FW_CString& directoryName) :
- fFileSpec(directoryName)
- {
- FW_END_CONSTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::~FW_CDirectorySpecification
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification::~FW_CDirectorySpecification()
- {
- FW_START_DESTRUCTOR
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::GetDirectoryName
- //
- // Return the name of this directory without any preceeding path information. There is
- // no path delimiter on the end of directoryName.
- //----------------------------------------------------------------------------------------
- void FW_CDirectorySpecification::GetName(FW_CString& directoryName) const
- {
- fFileSpec.GetName(directoryName);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::GetParentDirectory
- //
- // Fills in parentDirectory with information about the parent directory.
- //----------------------------------------------------------------------------------------
- FW_CDirectorySpecification FW_CDirectorySpecification::GetParentDirectory() const
- {
- return fFileSpec.GetParentDirectory();
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::GetFullPath
- //
- // Fills in parentDirectory with information about the parent directory.
- //----------------------------------------------------------------------------------------
- void FW_CDirectorySpecification::GetFullPath(FW_CString& fullPath) const
- {
- fFileSpec.GetFullPath(fullPath);
-
- FW_CPrivFileSystemParser::AddDelimiter(fullPath);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::operator==
- //----------------------------------------------------------------------------------------
- FW_Boolean FW_CDirectorySpecification::operator==(const FW_CDirectorySpecification& theOtherDir) const
- {
- return (fFileSpec == theOtherDir.fFileSpec);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::operator=
- //----------------------------------------------------------------------------------------
- FW_CDirectorySpecification& FW_CDirectorySpecification::operator=(const FW_CDirectorySpecification& theOtherDir)
- {
- fFileSpec = theOtherDir.fFileSpec;
- return (*this);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::operator+=
- //
- // Adds directoryName on to the end of this directory.
- // In this case, the new name is assigned to the internal FileSpec, where it is interpeted
- // as a partial path.
- //----------------------------------------------------------------------------------------
- FW_CDirectorySpecification& FW_CDirectorySpecification::operator+=(const FW_CString& directoryName)
- {
- FW_CDynamicString tempName;
-
- fFileSpec.GetName(tempName);
-
- #ifdef FW_BUILD_MAC
- // Need to add a leading delimiter to indicate this is a partial path.
- tempName.Prepend(&FW_kPathDelimiter, 1);
- #endif
-
- tempName += FW_kPathDelimiter;
- tempName += directoryName;
-
- fFileSpec = tempName;
- return (*this);
- }
-
-
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::operator=
- //
- // Set the name of the directory to the value specified in directoryName. directoryName
- // should not contain any path delimiters.
- //----------------------------------------------------------------------------------------
- FW_CDirectorySpecification& FW_CDirectorySpecification::operator=(const FW_CString& directoryName)
- {
- fFileSpec = directoryName;
- return (*this);
- }
-
-
- #ifdef FW_BUILD_WIN
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::WinGetDrive
- //
- // Get the drive letter that contains this directory.
- //----------------------------------------------------------------------------------------
- FW_Char FW_CDirectorySpecification::WinGetDrive() const
- {
- return (fFileSpec.WinGetDrive());
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::FW_CDirectorySpecification
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification::FW_CDirectorySpecification(const FSSpec& specification) :
- fFileSpec(specification)
- {
- FW_END_CONSTRUCTOR
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::operator=
- //
- // Copies the Macintosh FSSpec for this directory into specification.
- //----------------------------------------------------------------------------------------
-
- FW_CDirectorySpecification& FW_CDirectorySpecification::operator=(const FSSpec& macSpec)
- {
- fFileSpec = macSpec;
- return (*this);
- }
- #endif
-
-
- #ifdef FW_BUILD_MAC
- //----------------------------------------------------------------------------------------
- // FW_CDirectorySpecification::MacGetFSSpec
- //
- // Copies the Macintosh FSSpec for this directory into specification.
- //----------------------------------------------------------------------------------------
-
- void FW_CDirectorySpecification::MacGetFSSpec(FSSpec& macSpec) const
- {
- fFileSpec.MacGetFSSpec(macSpec);
- }
- #endif
-
-
-
-
-
-