// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System.IO;
namespace FlaxEditor.Content.Import
{
///
/// Folder import entry.
///
public class FolderImportEntry : ImportFileEntry
{
///
/// Flag used to skip showing import settings dialog to used. Can be used for importing assets from code by plugins.
///
public bool SkipSettingsDialog;
///
public FolderImportEntry(ref Request request)
: base(ref request)
{
SkipSettingsDialog = request.SkipSettingsDialog;
}
///
public override bool Import()
{
if (!Directory.Exists(ResultUrl))
{
Directory.CreateDirectory(ResultUrl);
var parentPath = Path.GetDirectoryName(ResultUrl);
var parent = Editor.Instance.ContentDatabase.Find(parentPath);
if (parent == null)
{
Editor.LogWarning("Failed to find the parent folder for the imported directory.");
return true;
}
Editor.Instance.ContentDatabase.RefreshFolder(parent, true);
}
var target = (ContentFolder)Editor.Instance.ContentDatabase.Find(ResultUrl);
// Import all sub elements
var files = Directory.GetFiles(SourceUrl);
Editor.Instance.ContentImporting.Import(files, target, SkipSettingsDialog);
// Import all sub dirs
var folders = Directory.GetDirectories(SourceUrl);
Editor.Instance.ContentImporting.Import(folders, target, SkipSettingsDialog);
return false;
}
}
}