Path.Combine() 行为与驱动器号

2023-11-24

根据官方文档有关Path.Combine方法:https://msdn.microsoft.com/en-us/library/fyy7a5kt(v=vs.110).aspx

Remarks

如果 path1 不是驱动器引用(即“C:”或“D:”)并且不以 DirectorySeparatorChar、AltDirectorySeparatorChar 或 VolumeSeparatorChar 中定义的有效分隔符结尾,则 DirectorySeparatorChar 将在串联之前附加到 path1。

这意味着它不会添加\ 在驱动器号之后,所以这段代码:

var path1 = @"c:";
var path2 = @"file.txt";
Path.Combine(path1, path2);

将产生C:file.txt它并不强制指向一个文件file.txt放在c:.

这背后的原因是什么?


Path.Combine那样工作是因为c:file.txt实际上是一个有效的路径。

根据有关 NTFS 路径的 Microsoft 文档:

如果文件名仅以磁盘指示符开头,而不以冒号后面的反斜杠开头,则它将被解释为驱动器上具有指定字母的当前目录的相对路径。请注意,当前目录可能是根目录,也可能不是根目录,具体取决于该磁盘上最近一次“更改目录”操作期间设置的目录。

简而言之,c:file.txt会在C盘当前目录下搜索文件,同时c:\file.txt将在驱动器的根文件夹中搜索文件(忽略当前目录)。

Since Path.Combine无法知道您期望的行为是什么,它无法自动添加反斜杠。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Path.Combine() 行为与驱动器号 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 按成员序列化

    我已经实现了template
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 在 VBA 中连接字符串

    我正在维护一个使用 VBA 用 Microsoft Access 编写的应用程序 我浏览了一下我的代码 刚刚注意到我下意识地使用加号 而不是与符号将字符串连接在一起 我已经有几年没有用 VB6 编写代码了 这会导致任何问题吗 一切看起来都很
  • 如何在 Visual Studio 2008 中创建 COM DLL?

    我已经很久没有编写 COM dll 了 我现在已经创建了几个类 它们继承了一些 COM 接口 但我想对其进行测试 我知道我必须在某处放置一个 GUID 然后使用 regsvr32 注册它 但是涉及哪些步骤 编辑 抱歉 忘了提及我正在使用 C
  • 如何将图像插入 OpenXML Word 文档的页眉?

    我的 OpenXML Word 文档生成项目需要文本 表格和图像 但首先 我需要一个带有徽标 图像 的文档标题 我使用了 Microsoft 示例来创建页眉和页脚 网址为使用 Open XML SDK 2 0 for Microsoft O
  • 为什么在某些条件下 AppDomain.CurrentDomain.GetAssemblies() 不返回 Global.asax 中的依赖程序集?

    EDIT 以前的标题是 IIS 重新启动和应用程序初始化之间的应用程序初始化行为不同 我更改了标题以将问题从 IIS 应用程序初始化中扩展出来 因为观察到的行为与AppDomain CurrentDomain GetAssemblies 我
  • 使用自定义 UITableViewCell 自动布局

    如何使用自动布局来移动自定义 UITableViewCell 的内容并调整其大小 为了使问题更清楚 我分配了contentView我的自定义单元格具有浅灰色背景颜色 为了将这个问题尽可能减少到最小 我的自定义单元只有一个UIImageVie
  • OpenCV中SimpleBlobDetector的minRepeatability参数有什么用?

    有一个minRepeatability参数输入SimpleBlobDetector在 OpenCV 中 这个参数有什么用 如果我将其从 1 更改为 20 它将如何影响斑点检测 相关代码在斑点检测 c The detect函数 唯一一个使用m
  • Hibernate:MySQLDialect 和 MySQLInnoDBDialect 之间有什么区别?

    MySQLDialect 和 MySQLInnoDBDialect 有什么区别 从那时起我就使用了 MySQLDialect 现在我想知道上面的有什么不同 Anyone MySQL默认的存储引擎是MyISAM 如果您需要事务和行级锁定 您通
  • React Router v4默认页面(未找到页面)

    这是常见的目的 将不匹配的请求定向到未找到的页面 用react router v4做这个看起来像以前的版本 我期望这个 下面是示例作品 链接工作正常 但我希望 NotFound 组件仅调用未知的 url 请求 但它总是在那里 import
  • Android下载管理器完成

    关于安卓下载管理器的小问题 这是我第一次使用它 并成功下载了多个文件并打开它们 但我的问题是如何检查下载是否完成 情况是我下载了一个 PDF 文件并打开它 通常该文件很小 在打开之前就完成了 但是 如果文件较大 如何在打开文件之前检查下载管
  • IndexedDB 事务和 Promise 之间的相互作用不一致

    I saw 同步承诺发布在 Reddit 和与作者进行了讨论 我们注意到 IndexedDB 事务和 Promise 之间的关系存在一些奇怪的不一致 IndexedDB 事务在所有情况下自动提交onsuccess活动结束 一个复杂的问题是你
  • Java 程序可以检测到它的堆空间不足吗?

    整个周末我都会在室友的电脑上运行遗传算法 我担心这么长时间运行它可能会耗尽内存 然而 我的算法的工作方式使得可以相当容易地修剪不太有用的结果 因此 如果有一种方法可以告诉我的程序何时将耗尽堆空间 我可能可以腾出空间并继续进行再多一些时间 当
  • Postgresql存储过程返回select结果集

    在 Microsoft SQL Server 中我可以做这样的事情 create procedure my procedure argument1 int argument2 int as select from my table wher
  • 错误 ITMS-90168:“您上传的二进制文件无效。”

    错误 ITMS 90168 您上传的二进制文件无效 生成的 API 分析文件太大 我们无法验证 交付前您的 API 每次我想将新版本的应用程序上传到 iTunes connect 时 都会出现上述错误 我正在使用应用程序加载器进行上传 我的
  • 监视目录列表的更改?

    在 unix 系统上 我如何监视 例如 tail 的工作原理 目录中对文件所做的更改 创建新文件或大小更改等 寻找命令行工具而不是要安装的东西 大多数 UNIX 变体都有一个 API 但它没有标准化 在Linux上 有inotify 在命令
  • ES6 尾递归优化堆栈溢出

    读过Rauschmayer 博士的描述关于 es6 中的递归尾部调用优化 我一直在尝试重新创建他详细介绍的递归阶乘函数的 零堆栈 执行 使用 Chrome 调试器在堆栈帧之间步进 我发现尾部优化没有发生 并且正在为每个递归创建一个堆栈帧 我
  • 为数组 x 中的每个元素选择 n 个项目(从泊松分布中抽取)的快速方法

    我在解决遇到的问题时遇到了一些麻烦 我有一个包含价格的数组 gt gt gt x np random randint 10 size 10 array 6 1 7 6 9 0 8 2 1 8 以及 随机 生成的泊松分布到达数组 gt gt
  • Keras ValueError:尺寸必须相等问题

    即使应用了答案和评论中的建议后 尺寸不匹配问题似乎仍然存在 这也是要复制的确切代码和数据文件 https drive google com drive folders 1q67s0VhB O7J8OtIhU2jmj7Kc4LxL3sf us
  • 在 Ruby 中动态创建类

    我有一个类应该看起来像这样 class Family Type1 people Array new 3 people 0 Policeman new Peter 0 people 1 Accountant new Paul 0 people
  • Android 意图过滤器不起作用

    我的应用程序可以打开以下文件格式 kml 应用程序 vnd google earth kml xml kmz 应用程序 vnd google earth kmz gpx 应用程序 gpx xml 我正在尝试正确设置我的意图过滤器 以便在尝试
  • Path.Combine() 行为与驱动器号

    根据官方文档有关Path Combine方法 https msdn microsoft com en us library fyy7a5kt v vs 110 aspx Remarks 如果 path1 不是驱动器引用 即 C 或 D 并且