Я также столкнулся с той же проблемой, и я смог ее решить. Итак, позвольте мне объяснить шаги, которые я применил. Я объясню это по вашему сценарию.
Согласно моему методу, нам нужно использовать класс «Путь» и класс «Сборка», чтобы получить относительный путь.
Итак, сначала импортируйте System.IO и System.Reflection в операторы using.
Затем введите приведенную ниже строку кода.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly(). CodeBase);
На самом деле в приведенной выше строке хранится путь к выходному каталогу вашего проекта (здесь выходной каталог относится к папке Debug вашего проекта).
Теперь скопируйте каталог FolderIcon в папку Debug. Затем введите приведенную ниже строку.
var iconPath = Path.Combine(outPutDirectory, "FolderIcon\\Folder.ico");
Теперь эта переменная iconPath содержит весь путь к вашему Folder.ico. Все, что вам нужно сделать, это сохранить его в строковой переменной. Используйте для этого строку кода ниже.
string icon_path = new Uri(iconPath ).LocalPath;
Теперь вы можете использовать эту строковую переменную icon_path в качестве относительного пути к значку.
Благодарю.