相关疑难解决方法(0)

如何在Windows下检查给定字符串是否是合法/有效的文件名?

我想在我的应用程序中包含批处理文件重命名功能.用户可以键入目标文件名模式和(在替换模式中的一些通配符之后)我需要检查它是否是Windows下的合法文件名.我试过使用正则表达式,[a-zA-Z0-9_]+但它不包括来自各种语言的许多国家特定字符(例如变音符号等).做这种检查的最佳方法是什么?

c# windows filesystems file

156
推荐指数
13
解决办法
15万
查看次数

检查文件名是有效的Windows名称

我想检查我的字符串是否是有效的Windows文件路径.我在四处寻找,似乎没有可靠的方法来做到这一点.我还检查了boost文件系统库,并且没有明显的功能来执行此检查,可能类似于is_valid_windows_name

c++ windows filesystems file

6
推荐指数
1
解决办法
7628
查看次数

Windows路径中多个反斜杠的已记录行为

显然,Windows(或Windows的至少一部分)会忽略路径中的多个反斜杠,并将其视为单个反斜杠。例如,从命令提示符处或“运行”窗口中执行以下任何命令都会打开记事本:

C:\Windows\System32\Notepad.exe
C:\Windows\System32\\Notepad.exe
C:\Windows\System32\\\Notepad.exe
C:\Windows\System32\\\\Notepad.exe
C:\\Windows\\System32\\Notepad.exe
C:\\\Windows\\\System32\\\Notepad.exe
Run Code Online (Sandbox Code Playgroud)

这甚至可以与在命令行上传递的参数一起使用:

notepad "C:\Users\username\Desktop\\\\myfile.txt"
Run Code Online (Sandbox Code Playgroud)

此行为记录在任何地方吗?我试了搜查,只发现这个 SO疑问,甚至提到的行为。

注意:我不是在问UNC路径(\\服务器名),\\?\前缀或\\“双引号转义符。

注意:在使用批处理文件时,我偶然发现了这种现象。批处理文件中的一行看起来像这样:

"%SOME_PATH%\myapp.exe"
Run Code Online (Sandbox Code Playgroud)

变量展开后,命令如下所示:

"C:\Program Files\Vendor\MyApp\\myapp.exe"
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,该批处理文件按预期执行,并且未因某种“找不到路径”错误而失败。

windows command-line path batch-file

2
推荐指数
1
解决办法
2524
查看次数

标签 统计

windows ×3

file ×2

filesystems ×2

batch-file ×1

c# ×1

c++ ×1

command-line ×1

path ×1