如何检索工作目录中所有文件的列表

How to retrieve a list of all files in the Working Directory

我正在寻找一种方法来获取我工作目录中所有文件的列表,它们是 FileStatus

我发现 repo.RetrieveStatus() 是完美的,但它不是 return 未更改的文件。

    private void GetFilesList()
    {
        //1. Get files in repository
        Repository repo = new Repository(LocalRepo);
        List<File> filelist = new List<File>();
        foreach (var item in repo.RetrieveStatus()) //This only lists altered files
        { 
            filelist.Add(new File(item.FilePath, this, item.State));
        }
        Files = filelist.ToArray<File>();   
    }

我能想到的唯一方法是创建两个列表,一个包含目录中的所有文件:Directory.GetFiles(); -(ListA)

然后将其与从 RetrieveStatus() -(ListB) 创建的列表进行比较。然后我将不得不 假设 列表 A 中不在列表 B 中的任何文件都未更改。

肯定有更好的方法吗?

我已经在 GitHub 上搜索了存储库,我能找到的唯一问题是 this one ,它似乎没有相关性。

是否有人知道我可以将 LibGit2Sharp 库中的任何其他方法用于此目的?

提前致谢。

关于此确切功能的拉取请求正在进行中(请参阅 #863)。

建议的实现是将一个可选的布尔值传递给 StatusOptions

RepositoryStatus status = repo.RetrieveStatus(
     new StatusOptions() { IncludeUnaltered = true | false });

随时订阅它,以便随时了解其最新进展(以及最终的合并)。