using
(FileStream fs
=
new
FileStream(nFileNameWithFullPath, FileMode.Create, FileAccess.Write))
{
if (File.Exists(nFileNameWithFullPath))
{
File.Delete(nFileNameWithFullPath);
}
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write(fileStream);
}
}
{
if (File.Exists(nFileNameWithFullPath))
{
File.Delete(nFileNameWithFullPath);
}
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write(fileStream);
}
}
以上的代码在调用File.Exists()方法的时候总是会返回True,
但是在执行File.Delete()方法的时候却要报错,
原因是当创建一个FileStream实例的时候, 如果FileMode是Create的话,
那么当实例产生的时候就会同时创建一个Bytes为0的File.
所以当调用File.Exists()方法的时候总是会返回True.
修改代码后
if (File.Exists(nFileNameWithFullPath))
{
File.Delete(nFileNameWithFullPath);
}
using (FileStream fs = new FileStream(nFileNameWithFullPath, FileMode.Create, FileAccess.Write))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Write(fileStream);
}
}