FileEncodingRewrite
using System.IO;
using System.Text;
using System.Threading;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Download.EncodingHelpers
{
public class FileEncodingRewrite : IFileEncodingRewrite
{
private const int _BUFFER_SIZE = 4096;
public void RewriteFile(string filePath, string tmpFilePath, Encoding sourceEncoding, Encoding destinationEncoding, CancellationToken cancellationToken)
{
using (StreamReader streamReader = new StreamReader(filePath, sourceEncoding))
using (StreamWriter streamWriter = new StreamWriter(tmpFilePath, false, destinationEncoding)) {
char[] array = new char[4096];
while (!cancellationToken.IsCancellationRequested) {
int num = streamReader.Read(array, 0, array.Length);
if (num == 0)
break;
streamWriter.Write(array, 0, num);
}
}
}
}
}