Для настроек я бы обязательно использовал файл app.config. Это предложено Microsoft, и, кроме того, это в любом случае самый простой способ обработки настроек приложения.
Для других файлов я бы порекомендовал либо локальный путь приложения, либо путь к роумингу, в зависимости от погоды, вам нужны только локальные данные или нет. Для компактных локальных баз данных я склонен использовать этот подход. Каталог приложений, как предлагает Альбин, плохая идея. Вы не можете быть уверены, что пользователю действительно разрешено выполнять запись в этот каталог и / или в файлы в этом каталоге (т. Е. Приложение было предварительно установлено администратором с повышенными правами).
Для определения местоположения локальных путей используйте
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
и для роумингового тракта
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming)
Дополнительную информацию о профилях пользователей Windows (например, реальные пути в разных версиях Windows можно найти здесь: http://msdn.microsoft.com/en-us/library/aa372123.aspx