Supprimer les tag bom dans fichier utf-8

Description

Ce programme vous permettra du supprimer les tags au début des fichiers UTF-8 BOM.
J?ai rajouté la possibilité de mettre des extensions pour le scan.

Voici l'url pour les fainéants, le programme y est déjà compilé :
http://hidalgoemmanuel.info/csharp-net/supprimer-les-tag-bom-dans-fichier-utf-8.html

Source / Exemple :


/*

  • Created by SharpDevelop.
  • User: hidalgo emmanuel
  • Date: 24/04/2008
  • Time: 12:20
  • To change this template use Tools | Options | Coding | Edit Standard Headers.
  • /
using System; using System.IO; using System.Collections; namespace delete_tag_utf8_bom_win { /// <summary> /// Description of ScanUtf8Bom. /// </summary> public class ScanUtf8Bom { public string sLogFichiers = ""; private string[] _oExtension; public ScanUtf8Bom( string[] oExtensions ){ this._oExtension = oExtensions; } public void ScanFolder( DirectoryInfo oDirectory ){ foreach( FileInfo oFileInfo in oDirectory.GetFiles() ){ string sExtension = oFileInfo.Extension; if( sExtension.Length > 1 && sExtension.Substring( 0, 1 ) == "." ) sExtension = sExtension.Substring( 1 ); string sOkExtension = Array.Find( this._oExtension, delegate ( string sExt ) { return sExt == sExtension; } ); if( sOkExtension != null && this.FileIsBOM( oFileInfo.FullName ) ) this.DeleteTagBom( oFileInfo.FullName ); } foreach( DirectoryInfo oDirectoryChild in oDirectory.GetDirectories() ) if( oDirectoryChild.Name != ".svn" ) this.ScanFolder( oDirectoryChild ); } public bool FileIsBOM( string sFile ){ byte[] oData = new Byte[ 3 ]; byte[] oBom = new Byte[ 3 ]; oBom[ 0 ] = 239;// -> i oBom[ 1 ] = 187;// -> » oBom[ 2 ] = 191;// -> ¿ FileStream oFileStream = new FileStream( sFile, FileMode.Open ); oFileStream.Read( oData, 0, 3 ); for( int i = 0; i < oData.Length; i++ ) if( oData[ i ] != oBom[ i ] ) return false; oFileStream.Close(); return true; } public void DeleteTagBom( string sFile ){ this.sLogFichiers += "delete tag in : " + sFile + "\r\n"; FileInfo oFileInfo = new FileInfo( sFile ); byte[] oData = new byte[ oFileInfo.Length ]; FileStream oFileStream = new FileStream( sFile, FileMode.Open ); oFileStream.Read( oData, 0, (int)oFileInfo.Length ); oFileStream.Close(); File.Delete( sFile ); oFileStream = new FileStream( sFile, FileMode.Create ); oFileStream.Write( oData, 3, oData.Length - 3 ); oFileStream.Close(); } } }

Conclusion :


Ce programme vous permet de supprimer les tags BOM (souvent invisible) de l'ensemble des fichiers d'un répertoire.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.