public void SetExportFilePath(string filePath)
        {
            string dirName = Loader.Core.CurFilePath;

            if (string.IsNullOrEmpty(Loader.Core.CurFilePath))
            {
                dirName = Loader.Core.GetDir((int)MaxDirectory.ProjectFolder);
            }
            else
            {
                dirName = Path.GetDirectoryName(dirName);
            }
            if (dirName.Last() != Path.AltDirectorySeparatorChar || dirName.Last() != Path.DirectorySeparatorChar)
            {
                dirName += Path.DirectorySeparatorChar;
            }

            string absolutePath;
            string relativePath;

            filePath = Path.ChangeExtension(filePath, outputFileExt);

            if (string.IsNullOrWhiteSpace(filePath)) // empty path
            {
                absolutePath = string.Empty;
                relativePath = string.Empty;
            }
            else if (Path.IsPathRooted(filePath)) // absolute path
            {
                absolutePath = Path.GetFullPath(filePath);
                relativePath = Tools.GetRelativePath(dirName, filePath);
            }
            else // relative path
            {
                absolutePath = Path.GetFullPath(Path.Combine(dirName, filePath));
                relativePath = Tools.GetRelativePath(dirName, absolutePath);

                exportPathRelative = relativePath;
            }

            // set absolute path (it may be different even if the relative path is equal, if the root dir changes for some reason)
            exportPathAbsolute = absolutePath;
            if (exportPathRelative.Equals(relativePath))
            {
                return;
            }
            exportPathRelative = relativePath;

            IsDirty = true;
        }