gpt4 book ai didi

c# - Path.Combine 是否曾在 .net 中进行过网络调用?

转载 作者:太空狗 更新时间:2023-10-29 21:24:01 24 4
gpt4 key购买 nike

我认识的人声称它确实如此,我正在反编译 System.IO 并查看 Path 类,但我看不到它进行网络调用。唯一的嫌疑是在 NormalizePath 中,它调用 PathHelper,后者调用了 Win32Native.GetFullPathName。我不知道那是做什么的。

他们还声称 System.Uri 在创建时会进行网络调用,我觉得这非常不可思议。鉴于这将是多么令人难以置信的缓慢以及这些方法是多么内在,我简直不敢相信它会做到这一点。

谁能教教我?

编辑:事实证明,Path.Combine(p) 永远不会调用网络,但 Path.GetFullName(p) 可以。如果你有一个带有短文件名的 UNC 路径(例如 "\\server\abcdef~1.txt"),它实际上会调用网络并尝试扩展路径,坦率地说,这让我大吃一惊。

最佳答案

不,Path.Combine 方法仅执行所需的字符串操作以生成合法的路径字符串,给定路径分隔符。它明确检查您是否为其提供了有效路径、有效文件名或其他任何内容。

.NET 4 的引用源代码是可用的,如果您好奇的话,您可以看到工作完全在托管代码中完成,没有本地方法调用,并且基本上是:

return path1 + (path1.EndsWidth("\") ? "" : "\") + path2;

(当然,更健壮和灵活,但这就是想法。)

类似地,Uri 类的构造函数主要执行字符串解析(尽管比 Path 的东西复杂几个数量级),但我仍然看不到任何网络调用。

您还可以通过在 C# 应用程序中执行此类命令时运行数据包捕获实用程序(例如 Wireshark)来自行检查。

关于c# - Path.Combine 是否曾在 .net 中进行过网络调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com