Amazon Wish List News RSS feed. Development Blog Browse the Forums  
  Overview - Downloads - Examples - News Feed - Contact Info -

FileHelpers v 2.0   (Click to see the History)

The FileHelpers are a free and easy to use .NET library to import/export data from fixed length or delimited records in files, strings or streams.

The idea is pretty simple:

You can strong type your flat file (fixed or delimited) simply describing a class that maps to each record and later read/write your file as an strong typed .NET array

The Library also has support for import/export data from differents storages like Excel, Access, SqlServer, etc.

Start to use the FileHelper right now:

Free and Open Source

The FileHelpers are completely free because they are released under the LPGL Licence that allows the use of the code and binaries in all places, also in commercial applications.

You can access the full source code of the library via the Subversion Repository at SourceForge

Basic Uses of the Library

Who needs the File Helpers Library ?

In almost every project there is a need to read/write data from/to a file of a specified format.

For example for log parsing, data warehouse and OLAP applications, communication between systems, file format transformations (for example from a fixed length to a CSV file).

This library aims to provide an easy and reliable way to accomplish this task.

Main Features

Easy to use: The FileHelpers Lib is straight forward to learn and use. (see EasyExample)

Auto Converters: The library has a set of converters for the basic types and can be easy extended to provide custom converters. (see ConverterBase and Converter Example)

RunTime Classes from the version 1.6.0 you can create you record class at run time, load them from files with source code or an Xml description (check the example)

High Performance: From the version 2.0 the library dont use any more reflection to get or set the field values, now we are using dynamic code generation (MSIL) and delegates

Master-Detail: You can read and write records with a master/detail pattern. (see Example1 and Example2)

Multiple record format support: With the MultirecordEngine you can read files with different record layout, you can also read files with some delimited and some fixed length records. (see Example)

Event Support: The engines of the library contain some events to make you easy to extend the behavior of the library (see Example)

Ms Excel Storage:  Are a way to extract / insert records between any source and an excel file. (see ExcelDataStorage and ExcelDataLinkExample)

DataLinks: Are a way to extract / insert records between a database and a file. (see DataStorage and FileDataLinkExample)

GenericDataLink:  Now you can to copy records between two Data Storages (see GenericDataLink and DataStorage)

Asynchronous Mode: You can use the library to read line by line and not the whole file. (see Async Methods)

.NET Compact Framework Support From the version 1.1 you can use the FileHelpers library for you PocketPC and WindowsCE developments. (thanks Pierre)

File Transform Engine: to convert files in one format to another (for example a file with CSV to a FixedLength record format) (check the example)

Progress Notification: to get notified of the progress in each operation in the library (check the example)

.NET 2.0 Generics: the cast less and strong typed version of the engines (check the example)

.NET 2.0 Nullable Types now the library supports Nullable types in his core (check the example)

FileDiffEngine to allow compare files with the same record layout (check the example)

Others Features

Files, Stream and String Support: You can use the library to read/write any stream or string, not only files. (see FileHelperEngine)

Different Error Behaviors: You can set the behavior of the library when an error is found (throw and exception, ignore, save and continue, etc) (see the examples)

Quoted String Support It allows to indicates that the field must be read and written as Quoted String, like Excel CSV. (see FieldQuotedAttribute

Data Table Operations: The library supports to direct read a file to a datatable rather than an array

CommonEngine a easy way to access to common operations (check the example)

Encoding Aware : You can define the encoding used to read and write files or streams. (see BaseEngine.Encoding)

NullValues : The library identifies the null values in the files and assign an adequate value. (see FieldNullValueAttribute)

Good Documentation : The library is fully documented, al least is the intention =) and with a lot of Examples of Use.

Align and Trimming: You can set the processing mode of the in/out strings with a lot of attributes like the FieldAlignAttribute and the FieldTrimAttribute.

Licence (LGPL)

FileHelpers Library is @Copyright 2005-2006 to Marcos Meli but it's source code and the binaries are free for commercial and non commercial use.

IŽll be happy to hear in what project are you using the library, if you wanna share this info with me only send a mail to:


One of the best references that makes the work of programming this library more easy are the Designing .NET Class Libraries, a complete guide for design and programming of libraries and controls using the techniques of the creators and gurus of .NET.

Contact and Ideas

The main site of contact of the library are the FileHelpers Forums

If you find that there is a feature that I must include, or you have a new idea (for the API, Source Code or Examples), only let me know, entering the forums or sending an e-mail to

See also

See also

Must Read - Quick Start Guide - Attributes List - F.A.Q. - Examples of Use - Contacts & Credits - Donations

© 2005-07 to Marcos Meli

FileHelpers on SourceForge
Browse the Forums Development Blog
Support the project
Devoo Software
Powered by:

Source Forge Thanks Jetbrains for support us !! Thanks BB Software for support us !! TestDriven.NET Code Coverage by Clover.NET Code Project Article Larkware News Sharp Toolbox