繁体   English   中英

文件存在c#visual Studio 2017

[英]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.2210.125.16.22计算机的任何权限。 即使是同一台计算机也是如此! UNC路径将强制进行网络访问,并且LocalSystem将不会通过网络提供任何凭据。 因此,无论文件的实际状态如何, File.Exists()都将始终返回false 在文档“备注”部分的末尾对此进行了介绍

如果在尝试确定指定文件是否存在时发生任何错误,则Exists方法将返回false。 在引发异常的情况下可能会发生这种情况,例如传递带有无效字符或太多字符的文件名,磁盘出现故障或丢失,或者调用者无权读取文件。

此外,首先使用File.Exists()几乎总是一种不好的做法。 而是尝试复制文件并在异常失败时处理异常。 无论如何,您都需要这样做,因为文件复制失败的原因很多 ,与现有文件无关。 这也更快 ,因为与异常处理一样慢,通常它仍然比File.Exists()检查调用的额外磁盘/网络I / O操作集要快得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM