业务需求:把本地文件上传到服务端,替换服务端的文件。
我用下述方式去覆盖被word打开的文档的时候,原文档没有被覆盖(先删除目标文件,然后在创建新的文件方式已知。请问大家还有其他什么好的方法,建议)。
using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
fs.Dispose();
}
试试先保存在另一个路径下,然后通过File.Copy复制过去进行覆盖
被占用的文件无法被覆盖。
报告什么错误?
不能覆盖的可能有很多,但最常见的有以下两种:
1、没有修改权限。覆盖是一种修改行为,有创建、删除、列表权限,不等于能修改,比如修改权限被禁用了。
2、文档使用中(被打开),这个情况肯定不能被修改,当然有一种可能是因为你上次打开的时候忘记关闭导致的,这个问题就需要你在代码中养成良好的习惯,使用完的对象及时关闭。
大叔说的对,一般“被占用的文件无法被覆盖。"
不过换个思路试试或许可行,在程序初始化时,试试赋予该程序管理员权限。