C# C语言中的参数解析和验证解析#

C# C语言中的参数解析和验证解析#,c#,.net,visual-studio,C#,.net,Visual Studio,我是C#编程新手。我想通过命令行运行窗口窗体应用程序,其中有一个参数是要在应用程序中打开的文件名。 如何对传递给应用程序的参数执行以下验证: 检查参数字符串是否为有效的文件路径(不是文件夹路径) 如果参数字符串是相对路径(如“~\xyz.pdf”),则它将生成并验证绝对路径(如“C:\Downloads\xyz.pdf”) 若参数字符串是有效的文件路径,那个么文件应该具有特定的扩展名(比如文件路径是有效的,它只是PDF文件) File.Exists如果您希望它是一个现有文件,那么唯一绝对简单的方

我是C#编程新手。我想通过命令行运行窗口窗体应用程序,其中有一个参数是要在应用程序中打开的文件名。 如何对传递给应用程序的参数执行以下验证:

  • 检查参数字符串是否为有效的文件路径(不是文件夹路径)
  • 如果参数字符串是相对路径(如“~\xyz.pdf”),则它将生成并验证绝对路径(如“C:\Downloads\xyz.pdf”)
  • 若参数字符串是有效的文件路径,那个么文件应该具有特定的扩展名(比如文件路径是有效的,它只是PDF文件)
  • File.Exists
    如果您希望它是一个现有文件,那么唯一绝对简单的方法就是尝试创建/打开它

  • 如果是标准相对路径(xyz.pdf),则可以使用
    path.GetFullPath(path.Combine(baseDirectory,path))
    。如果路径是相对路径或绝对路径,这将起作用

  • Path.GetExtension

  • File.Exists
    如果您希望它是一个现有文件,那么唯一绝对简单的方法就是尝试创建/打开它

  • 如果是标准相对路径(xyz.pdf),则可以使用
    path.GetFullPath(path.Combine(baseDirectory,path))
    。如果路径是相对路径或绝对路径,这将起作用

  • Path.GetExtension


  • 嗯,你可以试试这样:

    public static void Test(string path){
        // If there is no File at the desired location
        if (File.Exists(path) == false){
        }
    
        // Get the FullPath
        string fullPath = Path.GetFullPath(path);
    
        // Check the Extension for .pdf
        if (path.EndsWith(".pdf")){
    
        }
        // Or you can do Path.GetExtension(path)
    }
    

    嗯,你可以试试这样:

    public static void Test(string path){
        // If there is no File at the desired location
        if (File.Exists(path) == false){
        }
    
        // Get the FullPath
        string fullPath = Path.GetFullPath(path);
    
        // Check the Extension for .pdf
        if (path.EndsWith(".pdf")){
    
        }
        // Or you can do Path.GetExtension(path)
    }
    

    你尝试过什么,你到底被困在哪里了?你是编程新手?采纳以下建议:在谷歌上四处搜索,阅读文档并从代码示例中学习。我相信如果你用谷歌搜索你的3个独立点,你会为每个点找到合适的解决方案。一些提示[Path.GetFullPath][1],[Path.IsPathRooted][2]。[1] :[2]:你尝试了什么?你到底被困在哪里了?你是编程新手?采纳以下建议:在谷歌上四处搜索,阅读文档并从代码示例中学习。我相信如果你用谷歌搜索你的3个独立点,你会为每个点找到合适的解决方案。一些提示[Path.GetFullPath][1],[Path.IsPathRooted][2]。[1]: [2]: