Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как проверить - является ли директория ссылкой? / 9 сообщений из 9, страница 1 из 1
14.01.2014, 11:30
    #38525341
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Привет всем!

Директория "C:\Users\All Users" является ссылкой на "С:\ProgramData" .
Есть ли в framework метод, который позволяет проверить - является ли директория ссылкой или нет?
Я ничего подобного не нашёл на msdn.
...
Рейтинг: 0 / 0
14.01.2014, 11:40
    #38525360
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Тебе нужно именно вывести ссылочные директории, или у тебя проблема, скажем, с рекурсивным обходом поддиректорий?
...
Рейтинг: 0 / 0
14.01.2014, 11:50
    #38525376
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Мне нужно проверить - является ли директория ссылкой на другую, чтобы по 2 раза не сканировать и не отслеживать изменения файлов.

Например, этот код возвращает - является ли ФАЙЛ ссылкой, а мне нужно директорию проверить как-то

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
bool IsShortcut(string path)
        {
            string directory = Path.GetDirectoryName(path);
            string file = Path.GetFileName(path);

            //C:\Windows\system32\shell32.dll
            Shell32.Shell shell = new Shell32.Shell();
            Shell32.Folder folder = shell.NameSpace(directory);
            Shell32.FolderItem folderItem = folder.ParseName(file);

            if (folderItem != null)
            {
                return folderItem.IsLink;
            }

            return false;
        }
...
Рейтинг: 0 / 0
14.01.2014, 11:53
    #38525379
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
...
Рейтинг: 0 / 0
14.01.2014, 11:57
    #38525391
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Код: c#
1.
2.
3.
4.
            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\users\all users");
            if( (di.Attributes & System.IO.FileAttributes.ReparsePoint) !=0){
                // детали WinApi откроет
            }
...
Рейтинг: 0 / 0
14.01.2014, 12:00
    #38525396
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Pallaris Тут рассказывают

там в коде этого нет - является ли директория ссылкой или нет.
...
Рейтинг: 0 / 0
14.01.2014, 12:05
    #38525407
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
Изопропил
Код: c#
1.
2.
3.
4.
            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\users\all users");
            if( (di.Attributes & System.IO.FileAttributes.ReparsePoint) !=0){
                // детали WinApi откроет
            }



Да, вот это работает ReparsePoint .


Спасибо.
...
Рейтинг: 0 / 0
14.01.2014, 14:08
    #38525594
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
StudentsДа, вот это работает ReparsePoint
Которые бывают разными :
NTFS file systems can contain reparse points in the form of junction points, symbolic links, and hard links . The .NET Framework methods such as GetFiles and GetDirectories will not return any subdirectories under a reparse point. This behavior guards against the risk of entering into an infinite loop when two reparse points refer to each other. In general, you should use extreme caution when you deal with reparse points to ensure that you do not unintentionally modify or delete files. If you require precise control over reparse points, use platform invoke or native code to call the appropriate Win32 file system methods directly.
Studentsтам в коде этого нет - является ли директория ссылкой или нет.
А нужно сразу на блюдечке с голубой каемочкой?
...
Рейтинг: 0 / 0
14.01.2014, 16:55
    #38525922
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить - является ли директория ссылкой?
да, разными, но всё же как я понял всё это ссылки, а не папки.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как проверить - является ли директория ссылкой? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]