在 macOS 中检查文件是否存在于共享驱动器中时出现问题

问题描述 投票:0回答:1

我正在尝试从本地网络中的 Windows 计算机中找出共享驱动器中是否存在文件。该驱动器可以通过我的机器轻松安装和访问,并且不需要凭据。我正在使用 Visual Studio for Mac。

我在 C# 中使用以下代码并且存在是错误的:

FileInfo fileInfo = new FileInfo(@"\\servername\folder\file.pdf");
bool exists = fileInfo.Exists;

我在windows下试过代码,exist是真的。 我不知道 Mac 和 Windows 之间的不同之处。

我认为问题是 FileInfo 实际上没有访问参数中的共享驱动器和路径,检查具有 FullPath 属性的文件信息,如下所示。

"/Users/me/Projects/CurrentProjectFolder/\\\\servername\\folder\\file.pdf"

在用户路径下。 请告诉我为什么以及如何解决。

c# macos asp.net-core system.io.file
1个回答
0
投票

来自 Windows 的共享将挂载在 macOS 的

/Volumes
下。如果您从
folder
挂载
servername
,则本地路径将为
/Volumes/folder
.

例如

@"/Volumes/folder/file.pdf"

\\servername\folder\file.pdf
是 UNC 路径,看来 UNC 路径仅在 Windows 上受支持。

UNC 路径未被识别并被解释为未植根。因为它不是根目录,所以预先设置了当前目录,导致:

/Users/me/Projects/CurrentProjectFolder/\\\\servername\\folder\\file.pdf
© www.soinside.com 2019 - 2024. All rights reserved.