C# 打开PDF文件,在任何子文件夹中(u filename是一个编号+ ;_v+;a号码表1.999

C# 打开PDF文件,在任何子文件夹中(u filename是一个编号+ ;_v+;a号码表1.999,c#,unity3d,pdf,subdirectory,C#,Unity3d,Pdf,Subdirectory,我想制作一个打开PDf的程序 用户知道数字,但不知道文件所在的位置或文件是否完整 如果用户键入3333 程序可能会在一个文件中找到多个 3333_V2.pdf 3333_V3.pdf等 在这种情况下,程序需要打开3333_V3 这些文件不在sames文件夹中 从主文件夹到文件在大多数情况下都会有2个子文件夹(无需调用这些文件夹的规则) 我不能排除可能是两个同名文件。。但是,具有相同的文件将是相同的,因此,如果只有一个具有最高V数的文件被打开,那么它将非常慢,并且如果您有太多的文件、目录和子目录,

我想制作一个打开PDf的程序

用户知道数字,但不知道文件所在的位置或文件是否完整

如果用户键入3333

程序可能会在一个文件中找到多个

3333_V2.pdf 3333_V3.pdf等

在这种情况下,程序需要打开3333_V3

这些文件不在sames文件夹中

从主文件夹到文件在大多数情况下都会有2个子文件夹(无需调用这些文件夹的规则)


我不能排除可能是两个同名文件。。但是,具有相同的文件将是相同的,因此,如果只有一个具有最高V数的文件被打开,那么它将非常慢,并且如果您有太多的文件、目录和子目录,那么您的应用程序将非常慢,但是您可以使用类似

        string UserInput = "";
        string rootdir = @""; //Your directory path
        // gets list of directories and subdirectories
        var dirs = Directory.EnumerateDirectories(rootdir, "*", SearchOption.AllDirectories);
         
        foreach (var Dir in dirs)
        {
            var files = Directory.EnumerateFiles(Dir, "*", SearchOption.AllDirectories);
            foreach (var Fls in files)
            {
                // gets list of all files in directory
                if (Path.GetExtension(Fls) == ".pdf" && Path.GetFileNameWithoutExtension(Fls).StartsWith(UserInput))
                    Process.Start(Fls);
            }
        }

如果你有太多的文件、目录和子目录,它会非常慢,并且会使你的应用程序非常慢,但是你可以使用

        string UserInput = "";
        string rootdir = @""; //Your directory path
        // gets list of directories and subdirectories
        var dirs = Directory.EnumerateDirectories(rootdir, "*", SearchOption.AllDirectories);
         
        foreach (var Dir in dirs)
        {
            var files = Directory.EnumerateFiles(Dir, "*", SearchOption.AllDirectories);
            foreach (var Fls in files)
            {
                // gets list of all files in directory
                if (Path.GetExtension(Fls) == ".pdf" && Path.GetFileNameWithoutExtension(Fls).StartsWith(UserInput))
                    Process.Start(Fls);
            }
        }

我在代码中得到一个错误。。。这个过程是从哪里来的?尝试使用
Path.GetFileNameWithoutExtension(Fls).CONTAINS(UserInput)
代替
Path.GetFileNameWithoutExtension(Fls).StartsWith(UserInput)
可能会有帮助…我使用相同的代码在网络中运行的自定义H/W上注册DLL我在代码中得到一个错误。。。这个过程是从哪里来的?尝试使用
Path.GetFileNameWithoutExtension(Fls).CONTAINS(UserInput)
代替
Path.GetFileNameWithoutExtension(Fls).StartsWith(UserInput)
可能会有帮助…我使用相同的代码在网络中运行的自定义H/W上注册DLL