[英]BinaryWriter to overwrite an existing file c#
要在我的掌上电脑的存储器上写一张图片,我使用以下代码:
pic = (byte[])myPicutureFromDatabase;
using (var fs = new BinaryWriter(new FileStream(filepath, FileMode.Append, FileAccess.Write)))
{
fs.Write(pic);
fs.Flush();
continue;
}
我想问问您,如果此名称的文件已经存在,则此方法是否用新值覆盖文件? 如果该文件已经存在但具有旧值,我需要覆盖该文件。
不,它会追加行,您已经通过编写FileMode.Append
指定了它,应该指定FileMode.Create
来追加行(如果不存在,则创建一个新文件)
从MSDN FileMode.Create
指定操作系统应创建一个新文件。 如果文件已经存在,它将被覆盖。 这需要FileIOPermissionAccess.Write权限。 FileMode.Create等效于请求如果文件不存在,则使用CreateNew; 否则,使用截断。 如果该文件已经存在但为隐藏文件,则抛出UnauthorizedAccessException异常。
哪里作为FileMode.Append
打开文件(如果存在)并查找到文件末尾,或创建一个新文件。 这需要FileIOPermissionAccess.Append权限。 FileMode.Append只能与FileAccess.Write结合使用。 尝试在文件末尾之前寻找位置会引发IOException异常,并且任何读取尝试均会失败并引发NotSupportedException异常。
所以,你应该使用这个
pic = (byte[])myPicutureFromDatabase;
using (var fs = new BinaryWriter(new FileStream(filepath, FileMode.Create, FileAccess.Write)))
{
fs.Write(pic);
fs.Flush();
continue;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.