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; }