То, что я подразумеваю под этим вопросом, когда необходимо сохранить или раздать URL, использование строки является, вероятно, плохой практикой, и лучший подход должен был бы использовать тип URI. Однако настолько легко сделать сложные вещи более сложными и чрезмерно увеличенными в размерах.
Таким образом, если я собираюсь быть записью в файл на диске, я передаю его строка как имя файла и путь к файлу, или существует ли лучший тип, который будет лучше подходить для требования?
Этот код, кажется, является неуклюжим, и подверженным ошибкам? Я должен был бы также внести свою лепту проверки, если это - имя правильного файла, если строка содержит данные, и список продолжается.
частный пустой SaveFile (представляют fileNameAndPath в виде строки) {//нормальный материал, чтобы сохранить файл}
Для имени файла подойдет строка. .Net Framework использует строки для имен файлов, и это кажется нормальным.
Для проверки имени файла можно попробовать использовать регулярное выражение или проверить наличие недопустимых символов с помощью System.IO.Path.GetInvalidFileNameChars. Однако, вероятно, проще обрабатывать исключительные случаи недопустимых имен файлов путем обработки исключения, которое возникнет при попытке создания файла - плюс вам все равно нужно это сделать....
Строка - это хорошо, но вы должны приложить некоторые усилия, чтобы убедиться, что файл сохраняется в каталог, который вы ожидаете.
Если вы работаете с путем к файлу, обычно используется строка.
Если вы работаете с URL-адресом, вы можете рассмотреть возможность использования класса System.Uri , например
Uri myUri = new Uri(myUrl, UriKind.Absolute);
Это позволит вам работать со свойствами, такими как uri.Host, uri.Absolute path и т. Д. Это также даст вам строковый массив (сегменты) для отдельных подпапок в URL-адресе.
Информация MSDN здесь: System.Uri
Как ни прискорбно, но строка - это идиоматический способ сделать это в .NET - если вы посмотрите на такие вещи, как конструкторы FileStream
и т. Д., Они используют строки.
Вы могли рассмотреть возможность использования FileInfo
(или DirectoryInfo
), но это было бы несколько необычно.
Вы можете использовать FileInfo (из System.IO), чтобы передать его, но строки более или менее стандартны при обращении к файлам.
Вы всегда можете использовать Path.GetFileName ({yourstring}), чтобы получить имя файла из пути.