# Support for `FSRef` and `FSSpec`

PyObjC has its own wrappers for the types `FSRef` and `FSSpec`, and also supports the wrappers for these types in `Carbon.File`. The wrappers in

Note

The wrappers for these types in `Carbon.File` should not be used, that module is not available in Python 3 and has been unmaintained in Python 2.x with the introduction of macOS.

The types in this document are fully supported, and will be supported as long as macOS supports these types.

class objc.FSRef

  This type represents an opaque `FSRef` structure.

  Note

  All API’s using the FSRef type are deprecated by Apple as of macOS 10.8, for most of those APIs there are alternate APIs that use URL objects (`NSURL` or `CFURL`).

  New instances are created using the `from_pathname` method:

      >>> ref = objc.FSRef.from_pathname("/Library")
      >>> isinstance(ref, objc.FSRef)
      True

  Instances of `objc.FSRef` are opaque and don’t provide access to specific fields in the structure. The following methods and properties are available to access an instance:

  data

    A bytestring containing the value of the `FSRef` object.

  as_pathname()

    Returns the POSIX path for the `FSRef` object.

class objc.FSSpec

  This type represents an opaque `FSSpec` structure. It is not possible to create `FSSpec` instances in Python code.

  Note

  “FSSpec” is a deprecated type in Apple’s APIs. The type is not available for 64-bit code, and shouldn’t be used for new development.

  Instances of `objc.FSSpec` are opaque and don’t provide access to specific fields in the structure. The following methods and properties are available to access an instance:

  aref.data

    A bytestring containing the value of the `FSSpec` object.