2015-04-06 41 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

相關問題