![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Tectoder |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 202 Регистрация: 13.3.2007 Репутация: нет Всего: 8 |
Как прочитать поток(altternate file stream) ABC файла C:\1.txt, без использования функций WinApi?
|
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Хм, зачем они интересно это запретили для FileStream, не ясно. Может быть попробовать через CreateFile и потом хэнл передать в конструктор FileStream. В обычных конструкторах проверка вроде по пути файла осуществляется, может быть для хэндлов таких проверок нет.
Добавлено через 40 секунд .. или надо абсолютно без Win32 API? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Без использования функций WinAPI невозможно прочитать файл. Даже fopen/fread внутри себя юзают тот самый CreateFile от которого вам нужно избавиться. Посему, юзайте FileStream, StreamReader и т.п. и не загоняйтесь.
-------------------- ![]() |
|||
|
||||
Tectoder |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 202 Регистрация: 13.3.2007 Репутация: нет Всего: 8 |
Ну, я написал, нужно без WinAPI
![]() Во первых, я не могу юзать WinAPI потому что политики безопасности на целевом компьютере запрещают использование импортов API-функций. Во вторых, использование WinAPI лишает возможности запускать программу под mono, разве нет? |
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Я так понимаю в случае FileStream, StreamReader юзаешь винапи не напрямую а через реализацию, которая написана уже во фреймворке. Соответственно на моно, она написана как-то по-другому, с использованием LinuxAPI ![]() -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Значит придётся отказаться от использования потоков. ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Tectoder |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 202 Регистрация: 13.3.2007 Репутация: нет Всего: 8 |
||||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Под *nix есть схожий API потоков? Как бы там ни было, можно попробовать достучаться через рефлекшен до каких-нибудь приватных членов, вроде Microsoft.Win32.Win32Native.SafeCreateFile. Незнаю правда что об этом думают политики безопасности. ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Tectoder |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 202 Регистрация: 13.3.2007 Репутация: нет Всего: 8 |
Ну если FS ext3 поддерживает потоки, то наверное и ядро?
Честно говоря, я ен представляю как через reflection достучаться до приватных членов. То есть получить инфу наверное получится, но вот как вызвать... Почти наверняка не получится. Добавлено через 42 секунды Кроме того Microsoft.Win32 это наверное то же что и com.sun в java, то бишь то, что порядочные приложения использовать не должны? |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Да, это грязные трюки. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
на всякий случай:
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |