Ответ 1
Посмотрите на решение Джеффа Брауна.
Он реализовал ваши функции в статическом классе, который, кажется, просто отлично работает.
Я хочу сделать быструю проверку, если в полном пути используется точка соединения. У меня уже есть функция для проверки папки типа IsJunction()
, но, возможно, есть другое решение, чтобы не вызывать IsJunction()
в каждой подпапке.
Итак, я ищу функцию типа HasJunctionsInPath(string path)
без проверки каждой папки пути.
Есть ли что-то, что можно сделать?
Edit:
Или лучше...
Можно ли разрешить все переходы в пути, чтобы получить реальное местоположение файла или папки? Это еще лучше решит мою проблему, и я все же могу сравнить результат с исходным путем для реализации функции bool HasJunctionsInPath(string path)
.
Посмотрите на решение Джеффа Брауна.
Он реализовал ваши функции в статическом классе, который, кажется, просто отлично работает.
Насколько я знаю, в С# не существует встроенной реализации для непосредственного управления точками переходов/повторной обработки.
Итак, вам нужно сделать interop с kernel32.dll. Это немного сложно, но вы найдете образцы. Вам понадобятся вызовы CreateFile() и DeviceIoControl().
Вот хороший пример: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print
полезные ссылки msdn:
http://msdn.microsoft.com/en-us/library/cc232007%28PROT.13%29.aspx
http://msdn.microsoft.com/en-us/library/aa363858%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa363216%28v=vs.85%29.aspx