我希望有人能够遇到这个问题 - 我正在尝试使用WIA从文档扫描仪中捕获图像,但在尝试传输图像结果时,WIA报告“文件已存在。- HRESULT: 0x80070050)”,在所有出现此问题的计算机上,软件的初始使用是成功的。
我能够成功连接扫描仪,并查询名称、制造商等信息。我已确定如果在替代用户账户下运行代码(使用右键单击以管理员身份运行),则可以成功扫描图像。然而,在具有提升特权的相同用户帐户下运行代码会导致相同的错误。
注意:异常发生在Item1.Transfer上 - 因此在此之前,我尚未向WIA提供文件路径,因此这不能是它所指的文件。
最合理的答案是WIA在图像捕获期间存储了一个临时文件 - 我不知道的 - 并且无法覆盖以前的扫描。有人知道这可能在哪里吗?
我能够成功连接扫描仪,并查询名称、制造商等信息。我已确定如果在替代用户账户下运行代码(使用右键单击以管理员身份运行),则可以成功扫描图像。然而,在具有提升特权的相同用户帐户下运行代码会导致相同的错误。
注意:异常发生在Item1.Transfer上 - 因此在此之前,我尚未向WIA提供文件路径,因此这不能是它所指的文件。
WIA.DeviceManager DeviceManager1 = new WIA.DeviceManagerClass();
WIA.Device Scanner = DeviceManager1.DeviceInfos[i].Connect();
WIA.Item Item1 = null;
foreach (WIA.Item CurrentItem in Scanner.Items) {
Item1 = CurrentItem;
break;
}
WIA.ImageFile Image1 = new WIA.ImageFile();
//Attempt To Capture Scan
Image1 = (WIA.ImageFile)Item1.Transfer(WIA.FormatID.wiaFormatJPEG);
//Save To File
Image1.SaveFile(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + @"\scan" + DateTime.Now.Ticks + ".jpg");
最合理的答案是WIA在图像捕获期间存储了一个临时文件 - 我不知道的 - 并且无法覆盖以前的扫描。有人知道这可能在哪里吗?