Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
1

Чтение названия папок в $RECYCLE.BIN

27.11.2017, 13:25. Показов 3208. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно сам вопрос в названии темы. Как прочитать название папок которые находятся в $RECYCLE.BIN
Пример названия: S-1-5-21-1374640159-4252946830-3962090879-1000

Нужно прочитать название и записать его в лебел. Возможно?

Добавлено через 17 часов 47 минут
Никто не поможет?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2017, 13:25
Ответы с готовыми решениями:

recycle.bin desktop.ini
принес домой внешний ЖД до этого побывал по моим подозрениям на зараженном компьютере и теперь на...

Как восстановить RECYCLE.BIN
Всем привет. Удалил unlockerом случайно $RECYCLE.BIN. Проводник не отвечает, как исправить?

Полное отключение Recycle Bin в Windows
Здравствуйте. (Я вернулся. Хд.) Облазил гугл и раздел здешнего форума, но не нашёл того, что...

Что за папки такие: RECYCLER и $RECYCLE.BIN?
У меня эти папочки бледненькие и расположены не на диске C, а на D. Почему такая заинтересованность...

31
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,351
Записей в блоге: 1
04.02.2018, 20:36 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от kadet210688 Посмотреть сообщение
Вот пытаюсь вывести без пути через .Select(di => di.Name) - но выводит 2 одинаковых названия сразу. Не могу понять почему (
Потому что у тебя несколько локальных дисков с папкой $RECYCLE.BIN где есть одноименные вложенные папки.
0
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
04.02.2018, 22:50  [ТС] 22
OwenGlendower, Поправить ни как не получиться? Путь мешает очень просто Нужно оставить все тоже самое- но чтобы путь непоказывало. Уже перепробовал много вариантов- но ни в какую не хочет!
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,351
Записей в блоге: 1
04.02.2018, 22:54 23
kadet210688, чтобы знать как исправить нужно понимать что нужно получить на выходе. Ты только показал код без пояснений для чего ты его написал.
0
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
04.02.2018, 23:06  [ТС] 24
OwenGlendower, Ну собственно нужно вывести все тоже самое что он и выводит- НО без пути! собствено название папки. На данный момент у меня 3 диска. Системный- там есть папка рецикл. D диск- там есть папка рецикл. 3 диск- там нет папки рецикл. Собственно щас читает именно с D Диска и выводит путь и название папки. Если не будет D диска, будет читать из системного.

если применить это .Select(di => di.FullName)
Выводит: D:\$RECYCLE.BIN\S-1-5-21-895778785-3212347765-1577888325-1000

если примеить это .Select(di => di.Name)
Выводит: S-1-5-21-895778785-3212347765-1577888325-1000S-1-5-21-895778785-3212347765-1577888325-1000
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,351
Записей в блоге: 1
04.02.2018, 23:23 25
kadet210688, а если появится еще один диск на котором тоже будет $RECYCLE.BIN? Что тогда нужно получить?
0
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
04.02.2018, 23:28  [ТС] 26
OwenGlendower, На нем ничего не нужно делать ) Вот только что проверил- а оно и его читает (
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,351
Записей в блоге: 1
04.02.2018, 23:41 27
kadet210688, тогда например так. Строки на которые следует обратить внимание отмечены !!!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string[] firstAcessedPaths = DriveInfo.GetDrives()
    .Where(di => di.DriveType == DriveType.Fixed && Directory.Exists(Path.Combine(di.Name, "$RECYCLE.BIN")))
    .Select(drive => new DirectoryInfo(Path.Combine(drive.Name, "$RECYCLE.BIN"))
        .GetDirectories()
        .OrderBy(di => di.LastAccessTime)
        .Select(di => di.FullName) // !!!
        .FirstOrDefault()
    )
    .Where(v => !String.IsNullOrEmpty(v))
    .ToArray();
if (firstAcessedPaths.Length > 1)
{
    firstAcessedPaths = firstAcessedPaths.Where(v => !v.StartsWith("C")).ToArray();
}
 
string guid = Path.GetFileName(firstAcessedPaths[0]); // !!!
0
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
05.02.2018, 01:29  [ТС] 28
OwenGlendower, Низкий поклон вам ) Все работает

Добавлено через 1 час 14 минут
OwenGlendower, А можно еще вопрос один? Не зная какой диск будет системным- как его узнать и с него только прочитать папку рецикла?
0
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
05.02.2018, 07:43 29
Цитата Сообщение от kadet210688 Посмотреть сообщение
Не зная какой диск будет системным- как его узнать и с него только прочитать папку рецикла?
Получить переменные окружения
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,351
Записей в блоге: 1
05.02.2018, 13:52 30
Цитата Сообщение от kadet210688 Посмотреть сообщение
Не зная какой диск будет системным- как его узнать и с него только прочитать папку рецикла?
Получить системный диск можно так:
C#
1
string systemDrive = (Environment.GetEnvironmentVariable("SYSTEMDRIVE") ?? Path.GetPathRoot(Environment.SystemDirectory)).TrimEnd('\\');
Чтение папки ты в состоянии сделать самостоятельно.
0
35 / 35 / 16
Регистрация: 23.08.2016
Сообщений: 118
05.02.2018, 14:10 31
Цитата Сообщение от kadet210688 Посмотреть сообщение
Не зная какой диск будет системным- как его узнать и с него только прочитать папку рецикла?
код
C#
1
2
3
4
5
6
7
8
9
10
11
12
string firstAcessedPath = DriveInfo.GetDrives()
    .Where(di => di.DriveType == DriveType.Fixed && 
        string.Equals(di.Name, Path.GetPathRoot(Environment.SystemDirectory)) &&
        Directory.Exists(Path.Combine(di.Name, "$RECYCLE.BIN")))
    .Select(drive => new DirectoryInfo(Path.Combine(drive.Name, "$RECYCLE.BIN"))
        .GetDirectories()
        .OrderBy(di => di.LastAccessTime)
        .Select(di => di.FullName) // !!!
        .FirstOrDefault())
    .Where(v => !String.IsNullOrEmpty(v))
    .FirstOrDefault();
string guid = Path.GetFileName(firstAcessedPath);
0
8 / 5 / 1
Регистрация: 30.03.2017
Сообщений: 75
06.02.2018, 21:19  [ТС] 32
Данный вопрос решен полностью. Всем огромное спасибо кто помогал
0
06.02.2018, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2018, 21:19
Помогаю со студенческими работами здесь

Вирус перемещает файлы на флешке в свою папку recycle.bin
Примерно семь дней назад сказал из интернета файл в формате iso, как водится, проверил его...

При закачке на внешний USB HDD появляется папка $RECYCLE.BIN
Здравствуйте! При закачке на внешний USB HDD появляется папка $RECYCLE.BIN. Форматировал в NTFS...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит...

Чтение с .bin
Доброго времени суток уважаемые форумчане! Стоит задача расшифровать содержимое bin файла. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru