Показать полную графическую версию : *Теория* | Очистка реестра от "битых" ссылок на файлы
Нужно написать программу для очистки реестра от "битых" ссылок на файлы.
Сама работа с реестром проблемы не представляет. Я не знаю, как определить, что данная строка является именем файла, а не чем-то другим.
Если кто сталкивался с такой задачей - подскажите решение.
hasherfrog
01-11-2006, 17:16
Я считаю, что в "общем" случае задача не решаема.
Как правило, это будет строка REG_SZ, но может быть и binary.
Сравните
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
или
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpaper\MRU
и директории из
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
или
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
Но это цветочки
Основная проблема в том, что имя файла в самом общем случае будет иметь вид URI
http://www.ietf.org/rfc/rfc3986.txt (140К)
Так что надо уточнить задачу. Например, не работать с относительными путями.
См. в RFC приложение Appendix A.
[hr]
Кстати, можете посмотреть реализацию метода bool QFileInfo::isFile () const из исходников QT.
Я согласен, что в "общем" случае задача похоже не решаема.
Наверно хватит поиска файлов с полными путями.
Единственное, что мне пришло в голову, это поиск пары символов ":\", если они есть, то это файл, если нет то нет.
P.S. Насчет исходников QT, в С я не силен, но спасибо, попробую посмотреть.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.