2015-04-06 52 views
1

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

我发现repo.RetrieveStatus()这是完美的,但它不返回未改变的文件。

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(); - (利斯塔)

然后与此相比,从RetrieveStatus()创建的列表 - (数组listB)。然后我必须假设 ListA中不在列表B中的任何文件都未改变。

当然有更好的方法来做到这一点?

我已经通过GitHub上的存储库进行了搜索,我发现的唯一问题是this one,它似乎没有关系。

有没有人知道LibGit2Sharp库中有任何其他方法可用于此目的?

预先感谢您。

回答

0

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

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

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

随意订阅它,以便不断更新其进度(和最终合并)。

+0

我以为我疯了!谢谢 – KidCode 2015-04-07 07:01:27

相关问题