在 macOS 中检查共享云端硬盘中是否存在文件时出现问题

Issue when checking if file exists in shared drive in macOS

提问人:dmvn denso 提问时间:4/26/2023 最后编辑:dmvn denso 更新时间:4/26/2023 访问量:79

问:

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

我在 C# 中使用以下代码,并且存在为 false:

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

我在 Windows 中尝试了代码,并且存在是真的。 我不知道 Mac 和 Windows 之间的区别。

我认为问题是 FileInfo 实际上并没有访问参数中的共享驱动器和路径,而是使用 FullPath 属性检查 fileinfo,如下所示。

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

它位于“用户路径”下。 请告诉我为什么以及如何解决。

C# macOS ASP.net-core system.io.file

评论

0赞 Tu deschizi eu inchid 4/26/2023
我浪费了很多时间去发现:如果这是你需要完成的事情,而你不知道该怎么做,那么时间就不会浪费。你已经投入了时间来学习新的东西。需要多长时间?没有具体的时间。它需要多久就需要多久。
0赞 KennetsuR 4/26/2023
这回答了你的问题吗?我应该如何处理 c# 中的 windows/Linux 路径
0赞 Tu deschizi eu inchid 4/26/2023
尝试搜索 macos unc 路径
0赞 dmvn denso 4/26/2023
@KennetsuRinn我不这么认为。因为完整路径位于“用户路径”下:“/Users/me/Projects/CurrentProjectFolder/\\\\servername\\folder\\file.pdf”。所以我认为这是根本原因。但我不知道如何解决

答:

0赞 Jonathan Dodds 4/26/2023 #1

来自 Windows 的共享将挂载在 macOS 上。如果挂载自 ,则本地路径为 。/Volumesfolderservername/Volumes/folder

例如:

@"/Volumes/folder/file.pdf"

(如果您打开应用程序并将挂载卷的图标拖动到终端窗口上,挂载卷的路径将添加到当前光标位置。Terminal

\\servername\folder\file.pdf是 UNC(通用命名约定)路径,并且似乎仅在 Windows 上支持 UNC 路径。

UNC 路径无法识别,并被解释为未扎根。由于当前目录未获得 root 权限,因此会预置当前目录,从而导致:

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

评论

0赞 dmvn denso 4/27/2023
这是我需要的。destiation 文件位于 Volumes 文件夹下。这让我度过了一些糟糕的日子。谢谢。