Mega Code Archive

 
Categories / C# / File Stream
 

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

// 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    } }