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); } }
以上的代码在调用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); } }