c# - 在 C# 中创建文件 Uri

标签 c# .net uri

我想我错过了一些明显的东西......

我一直在阅读新项目中的代码,并遇到了与以下内容等效的代码:

var filePath = @"C:\temp\tmp1234.tmp";    // Generally obtained from System.IO.* calls
var uri = new Uri("file://" + filePath);

我认为这相当于:

var filePath = @"C:\temp\tmp1234.tmp";
var uri = new Uri(filePath);

(假设 Uri 类可以解析文件路径,推断方案并执行转义所需的任何操作)。

由于代码似乎可以工作,而且执行得如此频繁且如此一致,我假设原始开发人员有充分的理由使用 "file://"+ filePath 习惯用法。有人可以告诉我这个原因可能是什么吗?

谢谢!

最佳答案

它们都生成完全相同的 Uri 对象,除了(显然)OriginalString

您可以在 LINQPad 中看到这一点:

var filePath = @"C:\temp\tmp1234.tmp";    // Generally obtained from System.IO.* calls
new []{ 
    new Uri("file://" + filePath),
    new Uri(filePath)
}.Dump();

我猜最初的开发者并没有意识到这一点。

关于c# - 在 C# 中创建文件 Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234913/

相关文章:

c# - 如何使用 ADO.NET 创建数据源而不是读取和操作数据源

c# - 从 C# 使用时 F# 记录类型的相等性

c# - 在 Visual Studio 外部运行时从 WPF 窗口中删除图标

c# - 正则表达式:来自文本的 URI 部分

windows - 办公室协议(protocol)处理程序

android - 来自 URI 解析的通知声音不起作用

c# - C#上日期业务处理Windows Service

c# - 类似于自动回复的功能

.net - 交叉类型 LINQ

c# - 如何使笔刷平滑而中间没有线条