Изначально я просто решил опробовать Drag and drop в WPF и Win Form. Сделал окошко, где был ListBox, сделал так, чтобы в него можно было перетащить файлы. В ListBox'e показывался путь до этого файла, то есть то место, откуда я перетащил файл. Потом появилась идея каким - то образом заставить программу выдавать путь до файла, в моём случае через ярлык, узнать, где установлена программа. В общем, нашёлся такой путь решения.
GetFullPath используется как метод-функция.
GetFullPath используется как метод-функция.
// Таким образом узнаем путь до файла, через ярлык string GetFullPath(FileInfo file) { // проверяем, является ли файл ярлыком if (file.Extension == ".lnk") { using (var fstream = File.Open(file.FullName, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(fstream)) { fstream.Seek(0x14, SeekOrigin.Begin); var flags = reader.ReadUInt32(); if ((flags & 0x01) == 1) { fstream.Seek(0x4c, SeekOrigin.Begin); var itemIdLength = reader.ReadUInt16(); fstream.Seek(itemIdLength, SeekOrigin.Current); } var start = fstream.Position; var length = reader.ReadUInt32(); fstream.Seek(0x0c, SeekOrigin.Current); var offset = reader.ReadUInt32(); fstream.Seek(start + offset, SeekOrigin.Begin); return new string(reader.ReadChars((int)(start + length - fstream.Position))); } } } else return file.FullName; }