# CopyAsset(string, string)

> Duplicates the asset at path and stores it at newPath.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.6/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static bool CopyAsset(string path, string newPath)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Project relative path of the source asset.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Project relative path of the new asset to create.

### Returns

| Type                                                          | Description                                                                             |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the copy operation is successful or false if part of the process fails. |

### Remarks

All paths are relative to the project folder, for example: "Assets/MyTextures/hello.png".

```csharp
using UnityEngine;
using UnityEditor;

public class AssetDatabaseExamples : MonoBehaviour
{
    [MenuItem("AssetDatabase/Duplicate Material")]
    static void DuplicateMaterial()
    {
        const string assetPath = "Assets/Materials/CarMaterial.mat";
        for (var i = 0; i < 20; i++)
        {
            if(!AssetDatabase.CopyAsset(assetPath, $"Assets/Duplicates/Materials/CarMaterial{i}.mat"))
                Debug.LogWarning($"Failed to copy {assetPath}");
        }
    }
}
```

Any errors and warnings from the copy operation are reported in the log and the console.
