Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
ВнизНедопустимые символы в именах файловых потоков. Найти похожие ветки
← →
Riply © (2007-08-14 10:17) [0]Здравствуйте !
В Help"е мне удалось найти единственное утверждение на сабжевую тему,
что символы, допустимые в имени файла, допустимы и в имени файлового потока.
А какие не допустимы ?
Или перефразируем вопрос: С какими символами в имени невозможно создать файловый поток ?
P.S.
В первую очередь интересует #0.
← →
Leonid Troyanovsky © (2007-08-14 10:26) [1]
> Riply © (14.08.07 10:17)
> В Help"е мне удалось найти единственное утверждение на сабжевую
Надо читать сам msdn.
Вот тебе для затравки
http://www.rsdn.ru/forum/Message.aspx?mid=1238118&only=1
--
Regards, LVT.
← →
DrPass © (2007-08-14 10:30) [2]Раздел File Name Conventions из Platform SDK
Use any character in the current code page for a name, but do not use a path separator, a character in the range 0 through 31, or any character explicitly disallowed by the file system. A name can contain characters in the extended character set (128–255).
Use a period (.) as a directory component in a path to represent the current directory.
Use two consecutive periods (..) as a directory component in a path to represent the parent of the current directory.
Use a period (.) to separate the base file name from the extension in a directory name or file name.
Do not use the following characters in directory names or file names, because they are reserved:
< > : " / \ |
Do not use device names, such as aux, con, lpt1, and prn, as file names or directory names.
Process a path as a null-terminated string. The maximum length for a path, including a trailing backslash, is given by MAX_PATH.
← →
Riply © (2007-08-14 10:34) [3]>[1] Leonid Troyanovsky © (14.08.07 10:26)
>Вот тебе для затравки
Действительно "затравка" :)
> [2] DrPass © (14.08.07 10:30)
В том-то и дело, что это не совсем соответствует действительности :(
Во всяком случае с < > " я создаю.
← →
Leonid Troyanovsky © (2007-08-14 10:36) [4]
> Riply © (14.08.07 10:17)
> В первую очередь интересует #0.
Вот про \0 http://www.rsdn.ru/?Forum/?mid=1424585
--
Regards, LVT.
← →
Riply © (2007-08-14 10:47) [5]>[4] Leonid Troyanovsky © (14.08.07 10:36)
>Вот про \0
Там проверка идет только на имя файла. Про потоки ни слова :(
Придется писать тестовый пример. А ведь так хотела увильнуть от этого :)
Но и "тестовый пример" может и не будет ответом на мой вопрос.
Т.к. если мне не удастся, то это вовсе не означает, что невозможно :)
← →
DrPass © (2007-08-14 10:51) [6]
> Riply © (14.08.07 10:34) [3]
> В том-то и дело, что это не совсем соответствует действительности
А тебе для каких целей? Если ты собираешься хранить в потоках какие-то свои данные, ИМХО, не стоит отклоняться от рекомендаций Майкрософт. Если советуют использовать только те символы, которые допустимы в именах файлов, то их и используй. А то сегодня в NTFS 5 <> разрешены, завтра в NTFS 8 они будут запрещены...
← →
Leonid Troyanovsky © (2007-08-14 10:53) [7]
> Riply © (14.08.07 10:47) [5]
> Т.к. если мне не удастся, то это вовсе не означает, что
А нельзя придерживаться самых жестких требований?
Во всяком случае, и "<>" и #0 исключать.
--
Regards, LVT.
← →
Riply © (2007-08-14 10:56) [8]> [6] DrPass © (14.08.07 10:51)
>А тебе для каких целей ?
Мне нужно перебрать все потоки объекта и показать их пользователю.
От того может ли там быть #0 зависит выбор базовой структуры для хранения имен.
Т.е. например PWideChar в этом случае не подходят. Надо использовать TUNICODE_STRING
← →
Riply © (2007-08-14 10:58) [9]> [7] Leonid Troyanovsky © (14.08.07 10:53)
>А нельзя придерживаться самых жестких требований?
>Во всяком случае, и "<>" и #0 исключать.
Неа, низззя :)
Задача: найти все, спрятанное страшными злоумышленниками :)
← →
DrPass © (2007-08-14 11:00) [10]
> Riply © (14.08.07 10:56) [8]
Ну ты ж структуру NTFS изучала? В каком виде там хранятся имена файловых потоков? Вот в таком храни и в своем приложении - не ошибешься :)
← →
Leonid Troyanovsky © (2007-08-14 11:05) [11]
> Riply © (14.08.07 10:58) [9]
> Задача: найти все, спрятанное страшными злоумышленниками
Оные будут использовать и недокументированные функции,
т.е., искать надо, прежде всего, в обсуждениях, например, в usenet.
--
Regards, LVT.
← →
Riply © (2007-08-14 11:08) [12]> [10] DrPass © (14.08.07 11:00)
>В каком виде там хранятся имена файловых потоков?
MFT хранит в структурах почти TUNICODE_STRING.
Отличие в определении размеров (NameLength MaxNameLength).
>Вот в таком храни и в своем приложении - не ошибешься :)
Так, наверное и сделаю. Только при выводе на экран,
надо будет подменять #0, если они там могут быть :)
← →
Riply © (2007-08-14 11:12) [13]> [11] Leonid Troyanovsky © (14.08.07 11:05)
>Оные будут использовать и недокументированные функции,
Этим они нас не напугают :)
>т.е., искать надо, прежде всего, в обсуждениях, например, в usenet.
А это кто "usenet" ?
← →
Leonid Troyanovsky © (2007-08-14 11:19) [14]
> Riply © (14.08.07 11:12) [13]
> А это кто "usenet" ?
http://groups.google.com/support/bin/answer.py?hl=ru&answer=46854
Чего-то меня в заумь понесло, короче, надо просто погуглить.
--
Regards, LVT.
← →
Riply © (2007-08-14 12:50) [15]Если кому интерестно:
NtCreateFile, для потока, что-нибудь непечатное (типа #9) поедает :), но вот #0 - есть не хочет.
P.S. Как я и опасалась "тестовый пример" ответа не дал :(
← →
Игорь Шевченко © (2007-08-14 12:54) [16]
> NtCreateFile, для потока, что-нибудь непечатное (типа #9)
> поедает :), но вот #0 - есть не хочет.
Странно. Ключ реестра с #0 посередине хочет, а файл не хочет.
Ты точно не ошибаешься ?
← →
Riply © (2007-08-14 13:00) [17]> [16] Игорь Шевченко © (14.08.07 12:54)
>Странно. Ключ реестра с #0 посередине хочет, а файл не хочет.
Я тоже так думала: раз в реестре возможно, то здесь и подавно :)
>Ты точно не ошибаешься ?
Игорь, ну кончно же не точно :)
Разве бывают люди, которые не ошибаются ? :)
← →
Leonid Troyanovsky © (2007-08-14 13:01) [18]
> Игорь Шевченко © (14.08.07 12:54) [16]
> Ты точно не ошибаешься ?
В файлы точно не хочет.
См. также [4]
--
Regards, LVT.
← →
Riply © (2007-08-14 13:10) [19]>[18] Leonid Troyanovsky © (14.08.07 13:01)
>В файлы точно не хочет.
>См. также [4]
Я думала, что раз для имен потоков возможности расширены, то и ноль
может пройти, несмотря на то, что само файловое имя не принимает.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c