Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

Недопустимые символы в именах файловых потоков.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.029 c
2-1187373659
FireSonic
2007-08-17 22:00
2007.09.09
Каким образом возможно это сделать?


6-1169017415
root
2007-01-17 10:03
2007.09.09
Залипания


15-1186998966
sapsi
2007-08-13 13:56
2007.09.09
Установка Indy компонент


15-1187079106
gnl
2007-08-14 12:11
2007.09.09
Подскажите библиотеку для работы с большими числами


6-1166818956
DriveR_F
2006-12-22 23:22
2007.09.09
Как с помощью IdHTTP загрузить картинку