Utils::FileInProjectFinder Class | Extending Qt Creator Manual
Description: The FileInProjectFinder class is a helper class to find the original file in the project directory for a given file URL.

- Extending Qt Creator Manual
- QtCreator
- FileInProjectFinder
- Extending Qt Creator Manual 18.0.2

# Utils::FileInProjectFinder Class

class Utils::FileInProjectFinder

The FileInProjectFinder class is a helper class to find the original file in the project directory for a given file URL. More...

Header: | `#include <FileInProjectFinder>`

- List of all members, including inherited members

## Public Functions

Utils::FilePaths | findFile(const QUrl &fileUrl, bool *success = nullptr) const

## Detailed Description

Often files are copied in the build and deploy process. findFile() searches for an existing file in the project directory for a given file path.

For example, the following file paths should all be mapped to $PROJECTDIR/qml/app/main.qml:

- C:/app-build-desktop/qml/app/main.qml (shadow build directory)
- /Users/x/app-build-desktop/App.app/Contents/Resources/qml/App/main.qml (folder on macOS)

## Member Function Documentation

### Utils::FilePaths FileInProjectFinder::findFile(const QUrl &fileUrl, bool *success = nullptr) const

Returns the best match for the file URL fileUrl in the project directory.

The function first checks whether the file inside the project directory exists. If not, the leading directory in the path is stripped, and the - now shorter - path is checked for existence, and so on. Second, it tries to locate the file in the sysroot folder specified. Third, it walks the list of project files and searches for a file name match there.

If all fails, the function returns the original path from the file URL. To indicate that no match was found in the project, success is set to false.