Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.5 MB
Время: 0.044 c
3-1178897039
DeadMeat
2007-05-11 19:23
2007.09.09
Identity


15-1186673297
antonn
2007-08-09 19:28
2007.09.09
Оцените новый сайт


15-1186924736
апр
2007-08-12 17:18
2007.09.09
User Gate


4-1174565296
ekap
2007-03-22 15:08
2007.09.09
Checkbox в чужом SysTreeView32


8-1164092727
acyb
2006-11-21 10:05
2007.09.09
delphi + скриншот + белый экран





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский