Copy a file to a different filename, with cleaning null characters.

image_pdfimage_print
   
 

// crudwork
// Copyright 2004 by Steve T. Pham (http://www.crudwork.com)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with This program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.CodeDom.Compiler;
using System.Text.RegularExpressions;

namespace crudwork.Utilities
{
  /// <summary>
  /// File Utility
  /// </summary>
  public static class FileUtil
  {

    #region CleanNull
    /// <summary>
    /// Copy a file to a different filename, with cleaning null characters.
    /// </summary>
    /// <param name="filename"></param>
    /// <param name="outfile"></param>
    public static void CleanNull(string filename, string outfile)
    {
      try
      {
        if (File.Exists(outfile))
          File.Delete(outfile);

        using (StreamReader sr = new StreamReader(filename))
        using (BinaryReader br = new BinaryReader(sr.BaseStream))
        using (StreamWriter sw = new StreamWriter(outfile))
        using (BinaryWriter bw = new BinaryWriter(sw.BaseStream))
        {
          while (br.PeekChar() != -1)
          {
            byte b = br.ReadByte();

            // skip NULL character
            if (b == 0)
              continue;

            bw.Write(b);
          }

          sw.Flush();
          sw.Close();

          sr.Close();
        }
      }
      catch (Exception ex)
      {
        throw;
      }
    }
    #endregion

   }
}

   
     


This entry was posted in File Stream. Bookmark the permalink.