繁体   English   中英

按目录路径获取文件

[英]get files in order of directory path

我正在尝试从以下目录中选择文件是文件格式

14094901-1_SCAN_f568aecd-5f5a-424d-bb54-b2a7ee60ca9e
14094901-2_SCAN_90b3ddf3-17f9-417d-b64d-61a175a779a3

但是当选择文件后文件大小达到10到10之类的10时 ,它没有图片,然后跳转到10.i。下面的代码有趣,不知道为什么这样做

string path1 = @"C:\Users\test\AppData\Local\Temp\XXXXX";
                var paths = Directory.GetFiles(path1)
            .OrderBy(path =>
                Convert.ToInt32(
                    String.Concat(
                        path.Split('-', '.')
                            .Skip(3)
                            .Take(1)
                            //.Select(num => num.PadLeft(2, '0'))
                            .ToArray())
                )
            );

请让我知道如何以正确的顺序获取文件1,2,3,4,5,6,7,8,9,10,但是得到1,10,2,3,4,5,6,7,8 ,9

这可能有帮助

        string path1 = @"C:\Users\test\AppData\Local\Temp\XXXXX"
        var files = Directory.GetFiles(path1);
        var fileIndex = files.Select(a => new {Name = a, Index = Convert.ToInt32(a.Split(new[] {'-', '_'})[1])});
        var orderdFileNames = fileIndex.OrderBy(a => a.Index).Select(a => a.Name);

将第二个拆分值转换为.ToArry()之前的int。

请尝试这个

 string path1 = @"C:\Users\test\AppData\Local\Temp\XXXXX";
        var files = Directory.GetFiles(path1);
        var orderedFiles = files.OrderBy(file => Convert.ToInt32(file.Split(new []{'-', '_'})[1]));

请尝试这个

var orderedFiles =  Directory.GetFiles(path1).OrderBy(path =>
               Convert.ToInt32(
                String.Concat(
                    path.Split('_','-')
                        .Skip(1).Take(1)
                       .ToArray())
            )

            );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM