2015-02-01 2 views
0

Возможно ли, чтобы эта комбинация строк создавала 0-байтовый файл? Я бы ожидал, что запись всегда будет завершена. Благодаря!File.WriteAllBytes, создающий 0 байтовые файлы

File.WriteAllBytes(file_name, encrypted_data); 
encrypted_data = null; 

Редактировать: предполагается, что мой массив байтов, конечно, не пуст, к которому я добавляю чеки.

+0

Если 'encrypted_data' имеет положительную длину, выход file 'file_name' не может быть нулевой длины, – Dmitry

+0

Если код создает файл с нулевой длиной, то вероятной причиной является то, что файл уже открыт (в вашем коде или другом процессе), и ваш код захватывает и скрывает исключенное когда 'WriteAllBytes' терпит неудачу. – Loathing

+4

Стандартная ошибка - это неправильный файл, который вы создали ранее, когда вы отлаживали код. Стандартная причина этого заключается в том, что * file_name * является относительным путем, поэтому создается в довольно случайном месте, которое зависит от самой отвратительной глобальной переменной в программировании. Environment.CurrentDirectory –

ответ

-2

попытка пользователя WriteByte вместо File.WriteAllBytes

FileStream stream = File.Open(FilePath,FileMode.OpenOrCreate);    
        if (null != stream) 
        { 
         byte[] encrypted_data=something; // your bytes 
         foreach (byte b in encrypted_data) 
         { 
          stream.WriteByte(b); 
         } 
        } 
stream.Close(); 

вы все еще можете использовать System.IO.File.ReadAllBytes, когда вы читаете файл

+1

Почему это имеет значение? – mason

Смежные вопросы