Это - долгое время, так как я сделал любую работу ASN.1, но размер, очень вероятно, будет зависеть от деталей Ваших типов и фактических данных.
я был бы сильно , рекомендуют, чтобы Вы моделировали обоих и вставили некоторые реальные данные для сравнения.
, Если Ваш буфер протокола содержал бы повторенные типы примитивов, необходимо посмотреть на последний источник в Подрывной деятельности для Буферов Протокола - они могут быть представлены в "упакованном" формате теперь, который намного более эффективен пространством. (Порт My C# имеет всего , догнал эту функцию, некоторое время на прошлой неделе.)
Вы можете использовать Environment.GetFolderPath
, чтобы получить путь к папке данных пользователя:
string fileName = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"userinfo.txt");
Посмотрите документацию к Environment.SpecialFolder enum, чтобы найти папку, которая лучше всего соответствует вашим потребностям.
Вы можете использовать функцию Environment.GetFolderPath () вместе с перечислением Environment.SpecialFolder
.
Используйте:
String filePath = Path.Combine(
Evironment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
"userinfo.txt");
для создания имя файла в папке Мои документы
текущего пользователя.
Вы можете использовать Environment.SpecialFolder для создания пути к файлу, который указывает на мои документы:
string filePath = System.IO.Path.Combine(Environment.SpecialFolder.ApplicationData.ToString(), "userinfo.txt");
Просто добавьте путь к имени файла, например FileInfo fileusername = new FileInfo (@ "c: \ Users \ MyUser \ Documents \ userinfo.txt");
String path = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
OR
String path = Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments );
Судя по всему, вы просто хотите создать текстовый файл в настраиваемом каталоге. Я бы посоветовал создать константу для пути (возможно, сохранив ее в файле app.config).
<appSettings>
<add key="UserInfo" value="/Settings/UserInfo.txt" />
</appSettings>
Используйте относительный путь к вашему exe-файлу, чтобы независимо от того, где вы устанавливаете приложение, настройки всегда будут сохраняться в "PathToExe" /Settings/UserInfo.txt".
Затем вы должны сделать что-то вроде:
string UserInfoPath = ConfigurationManager.AppSettings["UserInfo"];
if (String.IsNullOrEmpty(UserInfoPath))
{
// perhaps use a default value or raise an exception
}
FileInfo fileusername = new FileInfo(Path.Combine(Application.StartUpPath, UserInfoPath));
StreamWriter namewriter = fileusername.CreateText();
namewriter.Write(txtUsername.Text);
namewriter.Close();
Однако вы можете столкнуться с проблемами с разрешениями, используя этот подход, обычно лучше хранить подобные вещи либо в реестре, либо в каталоге AppData.