MappingFIle в C#
В Win32API есть функции работы с файлами
CreateFile(...),
CreateMappingFile(...),
MappingViewOfFIle(...).
Интересует есть ли аналоги в C#? И вообще используется ли механизм проекции файлов и как им воспользоваться?
И еще: как внедрить в код на C# код из С++?
Заранее спасибо.
Цитата:
Originally posted by KhArt
Господа, вопрос следующий.
В Win32API есть функции работы с файлами
CreateFile(...),
CreateMappingFile(...),
MappingViewOfFIle(...).
Интересует есть ли аналоги в C#? И вообще используется ли механизм проекции файлов и как им воспользоваться?
И еще: как внедрить в код на C# код из С++?
Заранее спасибо.
Господа, вопрос следующий.
В Win32API есть функции работы с файлами
CreateFile(...),
CreateMappingFile(...),
MappingViewOfFIle(...).
Интересует есть ли аналоги в C#? И вообще используется ли механизм проекции файлов и как им воспользоваться?
И еще: как внедрить в код на C# код из С++?
Заранее спасибо.
Нет, маппинга файлов в .NET нет (да он там и не нужен), а для работы с файлами используются классы System.IO.File и System.IO.Path, также различные потоки файлового ввода/вывода, как, например StreamWriter и StreamReader. Напиши конкретную задачу, тогда станет ясно, что лучше использовать. Код на C++ в код на C# ты можешь внедрить, если переделать синтаксис текста на C++, ведь как-никак C++ и C# это РАЗНЫЕ языки.
Вообще, задача на Си была решена для исключения явного копирования больших массивов данных из файла в память. Это задача доверялась маппингу в виндах. Типа открыл файл, спроецировал, сделал ViewOfFileMapping и читай себе память до 2 ГГб. Быстро и просто.
Посмотрим, дает нам .НЕТ!
Цитата:
Originally posted by KhArt
Ок! Спасибо за информацию.
Вообще, задача на Си была решена для исключения явного копирования больших массивов данных из файла в память. Это задача доверялась маппингу в виндах. Типа открыл файл, спроецировал, сделал ViewOfFileMapping и читай себе память до 2 ГГб. Быстро и просто.
Посмотрим, дает нам .НЕТ!
Ок! Спасибо за информацию.
Вообще, задача на Си была решена для исключения явного копирования больших массивов данных из файла в память. Это задача доверялась маппингу в виндах. Типа открыл файл, спроецировал, сделал ViewOfFileMapping и читай себе память до 2 ГГб. Быстро и просто.
Посмотрим, дает нам .НЕТ!
Тоже самое можно сделать при помощи классов System.IO.StreamReader - потоковое чтение символьных данных
System.IO.MemoryStream - поток для чтения/записи в памяти
System.IO.FileStream - потоковый ввод/вывод в файл
System.IO.BinaryReader - потоковое чтение двоичных данных.