Skip to content
DeveloperMemos

Getting a File Name From a URL in Swift

Swift, URL, File Handling2 min read

When working with URLs in Swift, you may often encounter situations where you need to extract the file name from a given URL. Whether you're downloading files, caching data, or simply displaying resource information, having the ability to get the file name is crucial. In this article, we will explore different methods to retrieve the file name from a URL in Swift, providing you with practical examples along the way.

Method 1: Using the LastPathComponent Property

One straightforward approach to obtaining the file name from a URL is by utilizing the lastPathComponent property provided by the URL class in Swift. This property returns the last component of the path represented by the URL, which typically corresponds to the file name.

To demonstrate this method, consider the following example:

1let url = URL(string: "https://example.com/files/document.pdf")!
2let fileName = url.lastPathComponent
3
4print(fileName) // Output: document.pdf

By accessing the lastPathComponent property, we can directly extract the file name from the given URL. This method works well for most scenarios, especially when the URL follows the standard format.

Method 2: Using Regular Expressions

In some cases, the URL structure might be more complex, requiring a more flexible approach to extract the file name accurately. Regular expressions can be handy for handling such scenarios, allowing you to define patterns to match and extract specific portions of the URL.

Here's an example demonstrating how to use regular expressions to extract the file name from a URL:

1import Foundation
2
3let urlString = "https://example.com/files/document.pdf"
4let pattern = "[^/]+\\.[a-zA-Z]{3,4}$"
5
6if let regex = try? NSRegularExpression(pattern: pattern),
7 let match = regex.firstMatch(in: urlString, range: NSRange(urlString.startIndex..., in: urlString)) {
8
9 let fileNameRange = Range(match.range, in: urlString)!
10 let fileName = String(urlString[fileNameRange])
11
12 print(fileName) // Output: document.pdf
13}

By defining the appropriate regular expression pattern and using the NSRegularExpression class, we can match the desired portion of the URL and extract the file name accordingly.

Method 3: Using the URLComponents Class

Another approach to extracting the file name is by utilizing the URLComponents class in Swift. This class provides a structured representation of the individual components of a URL, allowing us to access each component separately.

Let's see how we can make use of URLComponents to retrieve the file name:

1let url = URL(string: "https://example.com/files/document.pdf")!
2if let fileName = url.pathComponents.last {
3 print(fileName) // Output: document.pdf
4}

In this method, we first create an instance of URLComponents initialized with the given URL. By accessing the pathComponents property and retrieving the last component using .last, we can obtain the file name from the URL.


Extracting the file name from a URL is a common task when dealing with networked resources or file manipulation in Swift. In this article, we explored three different methods to accomplish this task. We started with a straightforward approach using the lastPathComponent property, followed by utilizing regular expressions for more complex URL structures. Finally, we leveraged the URLComponents class to access individual components of the URL.