Все остальные ответы верны (обработка исключений, удаление, ...), вы можете даже использовать оператор using
. Я бы пошел с ответом Дарина Димитрова, который делает ваш код намного проще и легче для чтения.
Что касается вашего вопроса: как вы вызываете этот метод? Это работает для меня в простом консольном приложении:
class Program
{
static void Main(string[] args)
{
var text = "abcd";
var encoding = new UTF8Encoding();
var bytes = encoding.GetBytes(text);
SaveFile(bytes, @"D:\test.txt");
}
public static int SaveFile(byte[] b, string strpath)
{
FileStream fs = new FileStream(strpath, FileMode.Create);
fs.Write(b, 0, b.Length);
fs.Close();
if (File.Exists(strpath))
{
return 1;
}
else
{
return 0;
}
}
}
Обратите внимание, я использую точно такой же метод. Он работает для меня каждый раз, поэтому файл уже может существовать. В вашем случае, вы не можете передать строку? Может быть проблема с кодировкой?