Como remover acentos de uma string

Sabe quando você precisa encontrar aquele método e não acha e acaba perdendo tempo procurando então, esses dias eu procurei por métodos para remover os acentos de uma string e tive que passar por pelo menos 10 sites pois tinham vários métodos que não funcionavam, segue um método para remover acentos que realmente funciona:

public static string RetiraAcentos(string strcomAcentos)
 {
     string strsemAcentos = strcomAcentos;
     strsemAcentos = Regex.Replace(strsemAcentos, "[áàâãª]", "a");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ÁÀÂÃ]", "A");
     strsemAcentos = Regex.Replace(strsemAcentos, "[éèêë]", "e");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ÉÈÊË]", "E");
     strsemAcentos = Regex.Replace(strsemAcentos, "[íìî]", "i");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ÍÌÎ]", "I");
     strsemAcentos = Regex.Replace(strsemAcentos, "[óòôõº]", "o");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ÓÒÔÕ]", "O");
     strsemAcentos = Regex.Replace(strsemAcentos, "[úùû]", "u");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ÚÙÛÜ]", "U");
     strsemAcentos = Regex.Replace(strsemAcentos, "[ç]", "c");
strsemAcentos = Regex.Replace(strsemAcentos, "[Ç]", "C");
return strsemAcentos;
 }
Anúncios

Como copiar o conteudo de uma Stream para outra

Em alguns casos é necessário copiar o conteudo de uma Stream para outra Stream. Se voce apenas atribuir para uma nova variavel não será criada uma nova variavel e sim ter mais uma referencia para a mesma variavel em memoria(se não conseguiu leia esse post).
Voltando para o nosso problema, para copiar o conteúdo de uma stream para outra efetuei a chamada para esse método passando a stream que contem o conteúdo que deseja copiar no parâmetro src e passe a stream que deseja receber esse conteúdo. Segue o método para utilizar:

public static void CopyTo(System.IO.Stream src, System.IO.Stream dest)
 {

int readCount;

var buffer = new byte[8192];
while ((readCount = src.Read(buffer, 0, buffer.Length)) != 0)
dest.Write(buffer, 0, readCount);
 }

Quando salva um arquivo ocorre o erro “Illegal characters in path.”

Quando uma aplicação precisa salvar um arquivo, ou criar uma pasta que o usuário define o nome ou depende de algo que um usuário preenche é necessário um certo cuidado com esses dados pois dependendo da informação que o usuário coloca pode ocorrer o erro “Illegal characters in path.”.

Para evitar isso é necessário toda vez que for salvar um arquivo executar uma rotina parecida com essa:

public static string RemoverCaracteresInvalidosArquivo(string path)
 {

if (path.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) >= 0)
{
foreach (char c in System.IO.Path.GetInvalidFileNameChars())
{
path = path.Replace(c.ToString(), string.Empty);
}
}

return path;

}

Neste caso é tirado esse carácter e substituído por uma string vazia, mas é possível fazer trocando os valores por um valor qualquer.