При попытке вернуть все другие файлы из того же каталога, в котором находится указанный файл, возвращаемые файлы включают указанный файл. Предположим, у меня есть три файла на общем сервере в моей сети:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file2.ext
\\Server\Share\Path\To\file3.ext
Когда я пытаюсь отфильтровать файл2 с помощью метода .Equals()
для объекта FileInfo
, файл все еще включается.
FileInfo theFile = new FileInfo(@"\\Server\Share\Path\To\file2.ext");
List<FileInfo> allOtherFilesList = theFile.Directory.EnumerateFiles("*").Where(f => !f.Equals(vidFile)).ToList();
//Returned files:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file2.ext
\\Server\Share\Path\To\file3.ext
Если я использую метод .Equals()
на FileInfo.FullName
свойство, мне возвращают список файлов, как и следовало ожидать
FileInfo theFile = new FileInfo(@"\\Server\Share\Path\To\file2.ext");
List<FileInfo> allOtherFilesList = theFile.Directory.EnumerateFiles("*").Where(f => !f.FullName.Equals(vidFile.FullName)).ToList();
//Returned files:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file3.ext
Конечно, есть какой-то аспект метода .Equals()
, который я не понимаю? Я бы подумал, что два FileInfo
объекта, представляющих один и тот же файл, будут одинаковыми.