gpt4 book ai didi

c# - 字符串路径验证

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:01 25 4
gpt4 key购买 nike

我这里有一个字符串(来自用户的输入)作为文件路径。我检查了字符串,使其符合条件:

  • 检查文件路径的无效字符
  • 不接受绝对路径 (\Sample\text.txt)

无效字符是:

< > : "/\| ? *

我尝试在 catch 子句中捕获这些无效字符。除了'\',它都有效。它将接受“C:\\Sample\text.txt”,这是一个无效的文件路径。

以下示例应该是无效路径:

  • :\text.txt
  • :文本.txt
  • \:文本.txt
  • \文本.txt
  • C:\\\text.txt

该 ff。是有效路径的示例:

  • C:\text.txt

我也遇到过类似的问题,但似乎都没有解决我的问题。

进行此类检查的最佳方法是什么?

最佳答案

您可以使用 Path.GetFullPath ,如果路径无效,它将抛出异常。你可以有这样的方法:

public static bool IsValidPath(string path)
{
try
{
path = path.Replace(@"\\", ":"); // to cancel out c:\\\\test.text
string temp = Path.GetPathRoot(path); //For cases like: \text.txt
if (temp.StartsWith(@"\"))
return false;
string pt = Path.GetFullPath(path);
}
catch //(Exception NotSupportedException) // catch specific exception here or not if you want
{
return false;
}
return true;
}

要测试的示例代码:

List<string> list = new List<string>()
{
@":\text.txt",
@":text.txt",
@"\:text.txt",
@"\text.txt",
@"C:\\\text.txt",
@"C:\text.txt",

};

foreach(string str in list)
{
Console.WriteLine("Path: {0} is Valid = {1}" ,str,IsValidPath(str));
}

输出:

Path: :\text.txt is Valid = False
Path: :text.txt is Valid = False
Path: \:text.txt is Valid = False
Path: \text.txt is Valid = False
Path: C:\\\text.txt is Valid = False
Path: C:\text.txt is Valid = True

关于c# - 字符串路径验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12947405/

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