---
title: "CFURLCreateFileReferenceURL(_:_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfurlcreatefilereferenceurl(_:_:_:)"
---

# CFURLCreateFileReferenceURL(_:_:_:)

Returns a new file reference URL that points to the same resource as a specified URL.

## Declaration

```swift
func CFURLCreateFileReferenceURL(_ allocator: CFAllocator!, _ url: CFURL!, _ error: UnsafeMutablePointer<Unmanaged<CFError>?>!) -> Unmanaged<CFURL>!
```

## Parameters

- `allocator`: The allocator to use to allocate memory for the new CFURL object. Pass NULL or doc://com.apple.corefoundation/documentation/CoreFoundation/kCFAllocatorDefault to use the current default allocator.
- `url`: The URL.
- `error`: The error that occurred if the URL could not be created.

## Return Value

Return Value The new file reference URL, or NULL if an error occurs.

## Discussion

Discussion File reference URLs use a URL path syntax that identifies a file system object by reference, not by path. This form of file URL remains valid when the file system path of the URL’s underlying resource changes. If the original URL is a file path URL, this function returns a copy of the URL converted into a file reference URL. If the original URL is a file reference URL, this function returns the original. If the original URL is not a file URL, this function returns nil. File reference URLs cannot be created to file system objects which do not exist or are not reachable. This function returns nil instead. In some areas of the file system hierarchy, file reference URLs cannot be generated to the leaf node of the URL path. important: A file reference URL’s path should never be persistently stored, because it is not valid across system restarts or remounts of volumes. If you need to store a persistent reference to a file system object, use a bookmark instead. You can create a bookmark by calling CFURLCreateBookmarkData(_:_:_:_:_:_:).

## See Also

### Creating a CFURL

- [CFURLCopyAbsoluteURL(_:)](corefoundation/cfurlcopyabsoluteurl(_:).md)
- [CFURLCreateAbsoluteURLWithBytes(_:_:_:_:_:_:)](corefoundation/cfurlcreateabsoluteurlwithbytes(_:_:_:_:_:_:).md)
- [CFURLCreateByResolvingBookmarkData(_:_:_:_:_:_:_:)](corefoundation/cfurlcreatebyresolvingbookmarkdata(_:_:_:_:_:_:_:).md)
- [CFURLCreateCopyAppendingPathComponent(_:_:_:_:)](corefoundation/cfurlcreatecopyappendingpathcomponent(_:_:_:_:).md)
- [CFURLCreateCopyAppendingPathExtension(_:_:_:)](corefoundation/cfurlcreatecopyappendingpathextension(_:_:_:).md)
- [CFURLCreateCopyDeletingLastPathComponent(_:_:)](corefoundation/cfurlcreatecopydeletinglastpathcomponent(_:_:).md)
- [CFURLCreateCopyDeletingPathExtension(_:_:)](corefoundation/cfurlcreatecopydeletingpathextension(_:_:).md)
- [CFURLCreateFilePathURL(_:_:_:)](corefoundation/cfurlcreatefilepathurl(_:_:_:).md)
- [CFURLCreateFromFileSystemRepresentation(_:_:_:_:)](corefoundation/cfurlcreatefromfilesystemrepresentation(_:_:_:_:).md)
- [CFURLCreateFromFileSystemRepresentationRelativeToBase(_:_:_:_:_:)](corefoundation/cfurlcreatefromfilesystemrepresentationrelativetobase(_:_:_:_:_:).md)
- [CFURLCreateFromFSRef(_:_:)](corefoundation/cfurlcreatefromfsref(_:_:).md)
- [CFURLCreateWithBytes(_:_:_:_:_:)](corefoundation/cfurlcreatewithbytes(_:_:_:_:_:).md)
- [CFURLCreateWithFileSystemPath(_:_:_:_:)](corefoundation/cfurlcreatewithfilesystempath(_:_:_:_:).md)
- [CFURLCreateWithFileSystemPathRelativeToBase(_:_:_:_:_:)](corefoundation/cfurlcreatewithfilesystempathrelativetobase(_:_:_:_:_:).md)
- [CFURLCreateWithString(_:_:_:)](corefoundation/cfurlcreatewithstring(_:_:_:).md)
