Zaranee izvinyajus' za translit, russkaya raskladka otsutstuet v printsipe: corporate environment.
Problema v sledujuschem: esli v dereve katalogov suschestvuet ssilka na katalog predka (ili na sebya) (a na Vista nekotorije pol'zovatel'skiye katalogi po umolcha imejut takiye linki) tree viewer vpadaet v dlitel'niy (poka max internal length reached?) tsikl razbora puteshestvuja po ssilkam. Bilo bi neploho vstavit' kusok obnarugeniya tsiklicheskih ssilok, chtobi tree view po nim ne hodil.
vosproizvoditsya elementarno
c:
cd \
mkdir tmp
mkdir tmp\tmp2
cd tmp\tmp2
junction tmp3 c:\tmp
Cheers.
Reparse points
- Dark_Diver
- Posts: 26
- Joined: Wed 26 Aug, 2009 10:59
- Location: Kyiv
- Has thanked: 1 time
- Been thanked: 1 time
Re: Reparse points
И по F3 размер содержимого каталогов тоже долго и неправильно считается, ходя по циклическим ссылкам. Действительно было бы хорошо что-нибудь с этим сделать.
Re: Reparse points
Priyatno, kogda tsitirujut.DrKnS wrote:System settings - [ ] Scan symbolic links.
Было бы неплохо, ага.Bilo bi neploho vstavit' kusok obnarugeniya tsiklicheskih ssilok
Давайте кусок, вставим.
Kstati, ya zaranee za translit izvinilsya...
Po suschestvu ge, pri neblagopriyatnih obstoyatel'stvah mogno poluchit' eksponetsial'nuju bombu, yesli v dochernih katalogah mnogo podkatalogov, kak naprimer hash tables v kakom-nibud' ie temporary. U menaya far zavis na neskol'ko minut i ot'el okolo 200 MB pamyati.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Reparse points
Если вдруг непонятно - прочтите ещё раз, к вашему транслиту никаких претензий нет.
Эта рекурсия нам тоже не нравится.
Если дадите этот самый "кусок обнаружения циклических ссылок" - с удовольствием его применим.
Эта рекурсия нам тоже не нравится.
Если дадите этот самый "кусок обнаружения циклических ссылок" - с удовольствием его применим.
Re: Reparse points
А разве это такой сложный алгоритм?
Если путь назначения в ссылке совпадает с началом пути, где эта ссылка находится, то это значит цикл. Разве не так?
хотя нужно добавить массив для проверок путей, на случай если:
C:\temp\1 -> C:\other\1
C:\other\1\2 -> C:\temp
Получается, проверять нужно каждый каталог, "где мы уже были".
Если путь назначения в ссылке совпадает с началом пути, где эта ссылка находится, то это значит цикл. Разве не так?
хотя нужно добавить массив для проверок путей, на случай если:
C:\temp\1 -> C:\other\1
C:\other\1\2 -> C:\temp
Получается, проверять нужно каждый каталог, "где мы уже были".
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Reparse points
Проверять строковое представление, как вы предлагаете - это охрененно сложный алгоритм, серьёзно.А разве это такой сложный алгоритм?
Если путь назначения в ссылке совпадает с началом пути, где эта ссылка находится, то это значит цикл. Разве не так?
Для рекурсии ссылка не обязательно должна указывать на "начало пути". Она может указывать на другую папку, в которой есть ещё подпапка, на которую смонтирован раздел, на котором есть ссылка, указывающая на диск, который на самом деле subst, указывающий ещё на одну ссылку, которая указывает на шару на удаленной машине, в которой есть ещё одна ссылка, указывающая на исходную папку. И да, прибавьте сюда ещё и относительные ссылки.
Несложно догадаться, что обойти и проверить всё это хозяйство - долго, ресурсоёмко и чревато ошибками.
Re: Reparse points
ну вот, добрались до ссылки, указывающей на исходную папку. Значит, цикл. А относительные пути легко преобразовываются в абсолютные.
А какое ещё представление можно проверять, кроме строкового?
А какое ещё представление можно проверять, кроме строкового?
- chupakabra
- Posts: 1023
- Joined: Wed 27 Jul, 2005 19:36
- Contact: