Все время натыкаюсь в проектах на стиль кода работы с файловыми путями похожий на этот пример из msdn:
string startFolder = @"c:\program files\Microsoft Visual Studio 9.0\";
// Take a snapshot of the file system.
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
То есть с путем файлов работают как со строкой статическими методами, хотя это ближе к понятию объекта.
Есть ли библиотека на этот случай с объектом Path или в функциональном стиле?
Здравствуйте, grosborn, Вы писали:
G>То есть с путем файлов работают как со строкой статическими методами, хотя это ближе к понятию объекта.
Аргументируй.
G>>То есть с путем файлов работают как со строкой статическими методами, хотя это ближе к понятию объекта. 0>Аргументируй.
Вот так вот сразу не готов. Не думал об этом, как-то это у меня инстинктивно, объектный подход. А Path Directory File это все статические процедуры. И при объектном подходе код читаемый и компактный.
var PathToDataR8 = Path.Combine(Platform.SupportDir, "Content/d2k/DATA.R8");
var PathToDataR8 = Platform.SupportDir / "Content/d2k/DATA.R8";
В первом случае неважно завершается ли Platform.SupportDir слешем или нет (тоесть, @"C:\Temp" и @"C:\Temp\" будут одинаково скомбинированы в @"C:\Temp\Content\d2k\data.r8", во втором случае нужен учет и стиль (либо пути к папкам всегда имеют слеш в конце, либо всегда добавлять слеш при комбинировании).
С Combine и подобным головной боли меньше.
С методами расширения неплохо придумал
В приведенном примере / полный аналог Combine()
Но меня сейчас больше интересует есть ли что-то подобное в сети и не будет ли работа по оформлению и выкладке напрасной.