如何将C#/Unity中的fileInfo类型列表排序?

发布于 2025-02-11 12:48:18 字数 1150 浏览 2 评论 0原文

我在下面的代码下,将PDF转换为纹理离子统一,然后将这些纹理加载到数组中。但是这些页面以未分类格式以阵列更新。如何对数组或列表进行排序?以下是我的代码。

 public void GetPDFPages()
    {
        DirectoryInfo dir = new DirectoryInfo(@"C:\\Users\\HP\\Desktop\\TestBookPages\\");


        List<FileInfo> info = dir.GetFiles("*.jpg")
                             .Where(file => Regex.IsMatch(file.Name, "^[0-9]+")).ToList();

        Debug.Log(info.ToString());
       

        tmpTexture = new Texture2D[info.Count];

        int y = 0;
        foreach (FileInfo f in info)
        {
            tmpTexture[y] = LoadImageFromFile(f.Directory + "\\" + f.Name);
            bool front = (y & 1) == 0 ? true : false;
            book.SetPageTexture(tmpTexture[y], y / 2, front);

            y++;
        }

       
    }

    public static Texture2D LoadImageFromFile(string filePath)
    {
        Texture2D tex = null;
        byte[] fileData;

        if (File.Exists(filePath))
        {
            fileData = File.ReadAllBytes(filePath);
            tex = new Texture2D(2, 2, TextureFormat.RGBA32, false);
            tex.LoadImage(fileData);
        }
        return tex;
    }

I have below code where in I'm converting pdf to Textures ion unity, then I will be loading those textures into an array. But the pages are updated in array in unsorted format. How do I sort the array or List? Below is my code.

 public void GetPDFPages()
    {
        DirectoryInfo dir = new DirectoryInfo(@"C:\\Users\\HP\\Desktop\\TestBookPages\\");


        List<FileInfo> info = dir.GetFiles("*.jpg")
                             .Where(file => Regex.IsMatch(file.Name, "^[0-9]+")).ToList();

        Debug.Log(info.ToString());
       

        tmpTexture = new Texture2D[info.Count];

        int y = 0;
        foreach (FileInfo f in info)
        {
            tmpTexture[y] = LoadImageFromFile(f.Directory + "\\" + f.Name);
            bool front = (y & 1) == 0 ? true : false;
            book.SetPageTexture(tmpTexture[y], y / 2, front);

            y++;
        }

       
    }

    public static Texture2D LoadImageFromFile(string filePath)
    {
        Texture2D tex = null;
        byte[] fileData;

        if (File.Exists(filePath))
        {
            fileData = File.ReadAllBytes(filePath);
            tex = new Texture2D(2, 2, TextureFormat.RGBA32, false);
            tex.LoadImage(fileData);
        }
        return tex;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文