[英]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.