# ContainsFileByRealPath

> Checks if the project contains a file with the given physical path.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.iOS.Xcode](/engine/6000.6/script-reference/unityeditor/ios/xcode.md)
* **Assembly:** UnityEditor.iOS.Extensions.Xcode

## ContainsFileByRealPath(string)

Checks if the project contains a file with the given physical path.

```csharp
public bool ContainsFileByRealPath(string path)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The physical path of the file.

### Returns

| Type                                                          | Description                                                     |
| ------------------------------------------------------------- | --------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the project contains the file, false otherwise. |

### Remarks

The version without source tree argument searches across all absolute trees. Use this overload with care.

### Examples

```csharp
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class Sample_ContainsFileByRealPath  
{
    [PostProcessBuild]
    public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
    {

        // Stop processing if build target is not iOS
        if (buildTarget != BuildTarget.iOS)
            return;

        // Initialize PBXProject
        string projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
        PBXProject pbxProject = new PBXProject();
        pbxProject.ReadFromFile(projectPath);

        string fileToSearch = "Path/To/File/ExamplePlugin.mm";

        // Check if the project contains a file by using it's real path
        if (pbxProject.ContainsFileByRealPath(fileToSearch))
        {
            Debug.Log("File " + fileToSearch + " was found.");
            // Continue your logic
        }
        else
        {
            Debug.Log("File " + fileToSearch + " was not found.");
        }

        // If any changes were made to the PBXProject instance, apply changes to the pbxproj file
        pbxProject.WriteToFile(projectPath);

    }
}
```

## ContainsFileByRealPath(string, PBXSourceTree)

Checks if the project contains a file with the given physical path.

```csharp
public bool ContainsFileByRealPath(string path, PBXSourceTree sourceTree)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The physical path of the file.**** (\[PBXSourceTree]\(/engine/6000.6/script-reference/unityeditor/ios/xcode/pbxsourcetree)): The source tree path the file is relative to. The [PBXSourceTree.Group](/engine/6000.6/script-reference/unityeditor/ios/xcode/pbxsourcetree/group.md) tree is not supported.

### Returns

| Type                                                          | Description                                                     |
| ------------------------------------------------------------- | --------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the project contains the file, false otherwise. |

### Remarks

The version without source tree argument searches across all absolute trees. Use this overload with care.

### Examples

```csharp
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class Sample_ContainsFileByRealPath  
{
    [PostProcessBuild]
    public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
    {

        // Stop processing if build target is not iOS
        if (buildTarget != BuildTarget.iOS)
            return;

        // Initialize PBXProject
        string projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
        PBXProject pbxProject = new PBXProject();
        pbxProject.ReadFromFile(projectPath);

        string fileToSearch = "Path/To/File/ExamplePlugin.mm";

        // Check if the project contains a file by using it's real path
        if (pbxProject.ContainsFileByRealPath(fileToSearch))
        {
            Debug.Log("File " + fileToSearch + " was found.");
            // Continue your logic
        }
        else
        {
            Debug.Log("File " + fileToSearch + " was not found.");
        }

        // If any changes were made to the PBXProject instance, apply changes to the pbxproj file
        pbxProject.WriteToFile(projectPath);

    }
}
```
