Если вы работаете над кодом с участием этих коллег, я бы использовал FileInfo. Это на самом деле не имеет большого значения, но написание кода так, как ожидают другие, снижает необходимость сопровождения, повышает согласованность и в целом делает людей счастливыми.
Я укажу, что мне не нравится идея использовать FileInfo
для того, чтобы возложить бремя проверок на достоверность вызывающей функции, как указал McWafflestix. Если между вызывающей функцией и вызываемой функцией что-то разрывается, это не будет обнаружено. Это не обязательно будет перехвачено, если вы используете строку ... но, по крайней мере, она дает понять, где может возникнуть проблема. И вы все равно захотите отловить такие исключения в вызываемом методе. Конечно, вы не собираетесь открывать файл и начинать чтение / запись до тех пор, пока не окажетесь в действительной функции (если вы, FileInfo и string, вероятно, оба неправильные, но Stream имеет смысл, как предполагает TheSean).