2012-06-11 1 views
3

У меня есть программа, которая заполняет поле со списком с информацией о файлах, содержащихся в выбранном каталоге в депо.Фильтр P4 .Net список файлов

Соответствующий фрагмент кода заключается в следующем:

PerforcePath dir = _ctlProductSelect.SelectedItem as PerforcePath; 

_ctlServicePackSelect.Items.Clear(); 

if (dir != null) 
{ 
    foreach (P4.File file in _perforce.GetFiles(null, P4.FileSpec.DepotSpec(dir.Path + "/*.sp"))) 
    { 
     _ctlServicePackSelect.Items.Add(new PerforcePath(file.DepotPath.Path)); 
    } 
} 

Проблема заключается в том, что это также включает в себя файлы, которые помечены как удаленные. Есть ли способ фильтровать удаленные файлы из списка, возвращаемого методом GetFiles? Я не могу найти вероятных подозреваемых в документации API P4_dotNet.

+0

Вы пытались проверить свойства «LocalPath» или «ClientPath» объекта «Файл», чтобы увидеть, удален ли файл? –

ответ

1

Используя P4API.NET, вы можете добавить -e вариант GetFiles:


IList filesToFind = new List(); 
FileSpec fileToFind = new FileSpec(new DepotPath("//depot/..."), null, null, VersionSpec.Head); 
filesToFind.Add(fileToFind); 
Options o = new Options(); 
o.Add("-e", ""); 
IList filesFound = pRep.GetFiles(filesToFind, o);
0

То, что я в конце концов получил рабочий должен был сделать это inisde цикла Еогеасп:

foreach (P4.File file in _perforce.GetFiles(null, P4.FileSpec.DepotSpec(dir.Path + "/*.sp"))) 
{ 
    if (_perforce.GetFileMetaData(null, file)[0].HeadAction.ToString() != "MoveDelete") 
    _ctlServicePackSelect.Items.Add(new PerforcePath(file.DepotPath.Path)); 
} 

в основном проверка метаданных для каждого файла перед добавлением его в поле со списком.

0
IList<FileSpec> filesToFind = new List<FileSpec>(); 
FileSpec fileToFind = new FileSpec(FileSpec.DepotSpec("//depot/...").DepotPath, Revision.Head); 
filesToFind.Add(fileToFind); 
Options o = new Options(); 

o.Add("-m", "changelistid"); 
IList<File> FilesFound = rep.GetFiles(filesToFind, o) 
+0

** это также работает ** – gasroot

 Смежные вопросы

  • Нет связанных вопросов^_^