FileMode.Create and FileAccess.Write
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);
}
}
posted on 2008-09-13 14:42 Yang Liang 阅读(1111) 评论(0) 编辑 收藏 举报