Windows 路径中的多个反斜杠会产生什么后果(如果有)?

2023-12-06

在我的程序中,我经常在 app.config 文件中配置文件名和/或路径。这通常是这样的:

<add key="LogFileDirectory" value="C:\Logs" />
<add key="SaveLogFileTo" value="MyLogFile.txt" />

在我的实际应用程序代码中,我经常将它们与类似以下的代码连接在一起:

var logFile = ConfigurationManager.AppSettings["LogFileDirectory"]
+ @"\" +
ConfigurationManager.AppSettings["SaveLogFileTo"];

现在,上述代码的结果将给出日志文件路径C:\Logs\MyLogFile.txt但是,如果最终用户在配置文件中将日志文件目录指定为C:\Logs\带有尾部反斜杠,我的代码会产生实际路径C:\Logs\\MyLogFile.txt目录和文件之间有一个双反斜杠。

根据我的经验,这在实践中效果很好。事实上,即使进入命令提示符并执行cd c:\\\\\\windows\\\在实践中发挥作用。

我的问题是,这样的路径会产生什么后果(如果有的话)?我不想在生产代码中使用这个“功能”,如果它是未记录的并且可能会在未来某个时候在新版本的 Windows 中被破坏。


据我所知,没有任何后果,并且在未来的版本中不太可能被破坏,因为很多人都会做和你一样的事情。

但是,在 C# 中组合路径的正确方法是使用Path.Combine,这将为您删除任何额外的反斜杠:

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

Windows 路径中的多个反斜杠会产生什么后果(如果有)? 的相关文章

  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 批处理文件 - 读取特定行,并将该行中的特定字符串保存为变量

    有没有办法让 for f 循环 或其他任何东西 读取特定行 这是我到目前为止的代码 它读取每一行的第一个单词 echo off set file readtest txt for f tokens 1 delims A in file do
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • parsec:带有有用错误消息的字符串选择解析器

    让我们有以下解析器 parser GenParser Char st String parser choice fmap try string head tail tales
  • 将优惠券字段设置为 WooCommerce 中产品类别的必填字段

    我正在努力做到这一点 以便优惠券字段在 Woocommerce 上对于产品类别是强制性的 我尝试过使用这个答案中的代码但它仅适用于一组优惠券代码 我需要它与任何有效的优惠券代码一起使用 感谢您的任何帮助 请尝试以下操作 当找到特定产品类别的
  • 从命令行解锁 Android 模拟器

    我想从命令行运行 android 模拟器 解锁它并控制它 这可能吗 我知道如何从eclipse进行操作吗 在模拟器上尝试adb shell input keyevent 82 该键事件执行 KEYCODE MENU 并解锁屏幕
  • 如何使用 wxPython 制作窗口覆盖(在浏览器、游戏之上)

    我想制作一个简单的程序 此代码是一个演示 它将收集系统数据并将其显示在所有内容之上 我的目标是创建一个整体 ping集电极对于当前最大的互联网用户 我所要求的只是如何制作叠加层而已 Hello World but with more mea
  • Microsoft Graph API SDK .NET 获取其他用户电子邮件时出现问题

    我正在使用从 NuGet 1 2 下载的 Microsoft Graph SDK 我向 Azure AD 进行身份验证 使用 ADAL 我正在使用客户端凭据流 未作为任何特定用户进行身份验证 并使用应用程序权限角色来访问资源 我们将设置一个
  • 如何将节点列表添加到空间层

    我是 Neo4j 和 cypher 的新手 我有很多节点 我想将它们添加到空间层中 这是我用 cypher 尝试过的 从 csv 文件创建节点 load csv with headers from file green tripdata 2
  • 如何使用 Django 在 nginx 中设置子目录

    环境 uwsgi nginx Django 1 3 我正在使用域名www example com使用 Django 和 nginx 我想通过以下方式访问 Djangowww example com abc 但我不知道如何设置子目录 这是 n
  • Sass 中的图像路径有变量吗?

    我想要一个变量包含 CSS 文件中所有图像的根路径 我不太清楚这在纯 Sass 中是否可行 实际的 Web 项目不是 RoR 因此不能使用 asset pipeline 或任何花哨的爵士乐 这是我的例子 它不起作用 编译时 它会在后台 ur
  • 如何将“ENTER”按键发送到另一个应用程序?

    我有启动外部应用程序并自动填写密码提示的代码 我想自动按下 ENTER 键 以便用户不必单击 确定 如何将 ENTER 键发送到外部应用程序 下面是我现在的代码 将密码发布到应用程序的第一行工作正常 第二行发送 ENTER 键根本没有效果
  • 使用 magick R 导入 PDF 时出错

    我有数百个 PDF 需要裁剪 对于每个 PDF 我都有一组独特的坐标可供裁剪 我正在尝试使用 R 的 magick 包 版本 ImageMagick 6 9 9 14 但在导入 PDF 时收到错误 magick 文档中的这个示例抛出一个错误
  • Web.Config 中的 defaultRedirect 问题

    我使用 Asp net 4 这里为我的设置Web Config file
  • 将程序集添加到 Visual Studio 2015 ASP.NET 5

    我想将 Stimulsoft Report dll 作为程序集添加到我的 Visual Studio 2015 ASP Net 5 项目中 但参考管理器不包含带有扩展区域的程序集部分 与 VS 2013 中一样 我可以在其中选择 Stimu
  • 如何从验证码中完全删除该行

    我编写了一个程序来删除此验证码中的行 首先 我通过中值滤波器提高图像可见度 def apply median filter self img img gray img convert L img gray cv2 medianBlur np
  • 使用 numpy/scipy 从 3D 数组计算等值面

    我有一个 3D numpy 数组 其中包含给定函数的值 我想计算一个二维等值面 或一组表示该函数的某些值的等值面 在这种特殊情况下 每个一维列 column myarray i j 的 3D 数组可以独立处理 所以我想知道的是函数等于某个值
  • 启用执行功能

    我在共享服务器 apache 上有一个网站 我的一个脚本需要 exec 函数才能工作 但我的网络主机似乎已禁用它 有什么方法可以通过 htaccess 启用它吗 No disable functions指令仅适用于php ini出于安全原因
  • 将 .xfdf 保存为 .pdf

    我目前正在使用 Excel 用表单字段填充 PDF 文件 一切正常 但它将其导出为 xfdf 有谁知道如何将其另存为 pdf 格式吗 FullFileName FilePath Requisition Trim MyRecord Compa
  • 从 ClearCase 迁移到 Git

    我来自 ClearCase 背景 我们 简单地说 的工作流程由三个步骤组成 其中最左边的主干是不稳定的 中间的主干是质量保证 最右边的主干是稳定的 IE A A A B C C E D E E 正如您所看到的 稳定主干仅包含已合格的版本 我
  • Kotlin 中通过解构初始化 val

    最初我想实现 class NotationDiceRoll notation String val rolls Int val sides Int init parseNotation notation private fun parseN
  • MTRR寄存器如何实现? [关闭]

    Closed 这个问题是无关 目前不接受答案 x86 x86 64 公开了 MTRR 内存类型范围寄存器 可用于为不同用途指定物理地址空间的不同部分 例如 可缓存 不可更改 写入组合等 我的问题是 有人知道 MTRR 定义的物理地址空间限制
  • Windows 路径中的多个反斜杠会产生什么后果(如果有)?

    在我的程序中 我经常在 app config 文件中配置文件名和 或路径 这通常是这样的