簡體   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