# ImportAsset(string, ImportAssetOptions)

> Import asset at path.

## Definition

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

```csharp
public static void ImportAsset(string path, ImportAssetOptions options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The path of the asset to import.**** (\[ImportAssetOptions]\(/engine/6000.7/script-reference/unityeditor/importassetoptions)):&#x20;

### Remarks

Import an asset at the specified path. Calling this method triggers a number of callbacks including [AssetModificationProcessor.OnWillSaveAssets(string\[\])](/engine/6000.7/script-reference/unityeditor/assetmodificationprocessor/onwillsaveassets.md) and [AssetPostprocessor.OnPostprocessAllAssets(string\[\], string\[\], string\[\], string\[\], bool)](/engine/6000.7/script-reference/unityeditor/assetpostprocessor/onpostprocessallassets.md).

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

Additional Resources: [ImportAssetOptions](/engine/6000.7/script-reference/unityeditor/importassetoptions.md).

### Examples

```csharp
using System.IO;
using UnityEditor;
using UnityEngine;

public class ImportAssetExample : MonoBehaviour
{
    [MenuItem("APIExamples/ImportAsset")]
    static void ImportAssetOnlyImportsSingleAsset()
    {
        string[] fileNames = new[] { "test_file01.txt", "test_file02.txt" };

        for (int i = 0; i < fileNames.Length; ++i)
        {
            var unimportedFileName = fileNames[i];
            var assetsPath = Application.dataPath + "Artifacts" + unimportedFileName;
            File.WriteAllText(assetsPath, "Testing 123");
        }

        var relativePath = "Assets/Artifacts/test_file01.txt";
        AssetDatabase.ImportAsset(relativePath);
    }
}

public class PostProcessImportAsset : AssetPostprocessor
{
    //Based on this example, the output from this function should be:
    //  OnPostprocessAllAssets
    //  Imported: Assets/Artifacts/test_file01.txt
    //
    //test_file02.txt should not even show up on the Project Browser
    //until a refresh happens.
    static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
    {
        Debug.Log("OnPostprocessAllAssets");

        foreach (var imported in importedAssets)
            Debug.Log("Imported: " + imported);

        foreach (var deleted in deletedAssets)
            Debug.Log("Deleted: " + deleted);

        foreach (var moved in movedAssets)
            Debug.Log("Moved: " + moved);

        foreach (var movedFromAsset in movedFromAssetPaths)
            Debug.Log("Moved from Asset: " + movedFromAsset);
    }
}
```
