[英]file Exists c# visual studio 2017
找不到该文件,并且该文件在该路由中。
FileInfo file = new FileInfo(@"\\10.125.16.22\Facturas Electronicas\Factura EMP000098.pdf");
if (file.Exists)
{
EventLog.WriteEntry("encontro los adjuntos de la factura " + nrodocumento);
File.Copy(ruta, @"C:\Factura\" + file.Name + ".pdf", true);
cantidad++;
}
else
{
EventLog.WriteEntry("no existe el adjunto " + ruta);
}
当到达if (file.Exists)
,结果为False
。 我正在使用的项目类型是Visual Studio服务项目。
服务窗口中的配置我有Account LocalSystem
我必须更改它吗?
如果不是“本地系统”,该怎么办?
服务窗口中的配置我有
Account LocalSystem
我必须更改它吗?
是的,您必须更改此设置。 LocalSystem
帐户在10.125.16.22
处10.125.16.22
计算机的任何权限。 即使是同一台计算机也是如此! UNC路径将强制进行网络访问,并且LocalSystem
将不会通过网络提供任何凭据。 因此,无论文件的实际状态如何, File.Exists()
都将始终返回false
。 在文档“备注”部分的末尾对此进行了介绍 。
如果在尝试确定指定文件是否存在时发生任何错误,则Exists方法将返回false。 在引发异常的情况下可能会发生这种情况,例如传递带有无效字符或太多字符的文件名,磁盘出现故障或丢失,或者调用者无权读取文件。
此外,首先使用File.Exists()
几乎总是一种不好的做法。 而是尝试复制文件并在异常失败时处理异常。 无论如何,您都需要这样做,因为文件复制失败的原因很多 ,与现有文件无关。 这也更快 ,因为与异常处理一样慢,通常它仍然比File.Exists()
检查调用的额外磁盘/网络I / O操作集要快得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.