Есть ли более корректный тип для передачи в пути к файлу и имени файла к методу

То, что я подразумеваю под этим вопросом, когда необходимо сохранить или раздать URL, использование строки является, вероятно, плохой практикой, и лучший подход должен был бы использовать тип URI. Однако настолько легко сделать сложные вещи более сложными и чрезмерно увеличенными в размерах.

Таким образом, если я собираюсь быть записью в файл на диске, я передаю его строка как имя файла и путь к файлу, или существует ли лучший тип, который будет лучше подходить для требования?

Этот код, кажется, является неуклюжим, и подверженным ошибкам? Я должен был бы также внести свою лепту проверки, если это - имя правильного файла, если строка содержит данные, и список продолжается.

частный пустой SaveFile (представляют fileNameAndPath в виде строки) {//нормальный материал, чтобы сохранить файл}

5
задан Aziz Shaikh 23 November 2012 в 12:07
поделиться

5 ответов

Для имени файла подойдет строка. .Net Framework использует строки для имен файлов, и это кажется нормальным.

Для проверки имени файла можно попробовать использовать регулярное выражение или проверить наличие недопустимых символов с помощью System.IO.Path.GetInvalidFileNameChars. Однако, вероятно, проще обрабатывать исключительные случаи недопустимых имен файлов путем обработки исключения, которое возникнет при попытке создания файла - плюс вам все равно нужно это сделать....

5
ответ дан 13 December 2019 в 22:02
поделиться

Строка - это хорошо, но вы должны приложить некоторые усилия, чтобы убедиться, что файл сохраняется в каталог, который вы ожидаете.

0
ответ дан 13 December 2019 в 22:02
поделиться

Если вы работаете с путем к файлу, обычно используется строка.

Если вы работаете с URL-адресом, вы можете рассмотреть возможность использования класса System.Uri , например

Uri myUri = new Uri(myUrl, UriKind.Absolute);

Это позволит вам работать со свойствами, такими как uri.Host, uri.Absolute path и т. Д. Это также даст вам строковый массив (сегменты) для отдельных подпапок в URL-адресе.

Информация MSDN здесь: System.Uri

0
ответ дан 13 December 2019 в 22:02
поделиться

Как ни прискорбно, но строка - это идиоматический способ сделать это в .NET - если вы посмотрите на такие вещи, как конструкторы FileStream и т. Д., Они используют строки.

Вы могли рассмотреть возможность использования FileInfo (или DirectoryInfo ), но это было бы несколько необычно.

4
ответ дан 13 December 2019 в 22:02
поделиться

Вы можете использовать FileInfo (из System.IO), чтобы передать его, но строки более или менее стандартны при обращении к файлам.

Вы всегда можете использовать Path.GetFileName ({yourstring}), чтобы получить имя файла из пути.

1
ответ дан 13 December 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: