Здравствуйте, я пытаюсь создать папку каталога с текстовым документом для моего исполняемого файла приложения Windows. Теперь я должен сделать его доступным локально для других пользователей.избежать перезаписи файла и содержимого с каждым прогоном или запросом с исполняемым каталогом
Я делаю это так:
string dir = "%ProgramData%\\MyAppName\\doc.txt";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(Path.GetDirectoryName(dir));
var stream = File.CreateText(dir);
stream.Close();
}
и вот мой путь доступа из исполняемого каталога внутри кода:
const string mypath = (@"%ProgramData%\MyAppName\doc.txt");
На одной стадии реализации у меня есть также отдельное создание документа, но я почти уверен, что не имеет никакого отношения к проблеме, потому что создает его один раз и никогда не перезаписывает, если файл существует, сохраняет содержимое текстового документа с каждым новым запуском программы, добавлением данных или запросом к нему. Только если я удалить его вручную, в этом случае создает новый:
if (File.Exists(mypath))
wordsTyped.AddRange(File.ReadAllLines(mypath));
и отлично работает с локальным путем к папке отладки, как это:
const string tetdb = ("doc.txt");
Так код исполняемого файла должен работать точно так же, если каталог, папка, файл с содержимым не работают с ним. Но с кодом выше, он переписывает все с каждым запросом к нему, а не только с новым запуском программы, с папкой, текстовым документом и содержимым внутри.
но должен быть следующим: если папка создается один раз, если каталог, файл, документ существует, нет нетто с кодом исполняемого файла или нажмите клавишу ввода, или он уже был там. сохранять содержимое внутри текстового документа с каждым запуском программы или запрашивать его добавления к нему.
Я попытался создать только папку для исполняемого пути, чтобы создать текстовый документ отдельно, как показано выше, но я получил тот же результат. Итак, как избежать этой проблемы, что я делаю неправильно?
'«% ProgramData% \\ MyAppName \\ Doc.txt»;' это имя файла не реж имя. Таким образом, 'Directory.Exists (dir)' всегда будет терпеть неудачу ... (Сравните его с 'File.Exists') –
Код в сообщении не имеет смысла - зачем создавать папку и сразу же пытаться открыть ее как текстовый файл? Пожалуйста, отправьте код, который по крайней мере выглядит разумным. Замечание: в обычной системе, где пользователи не имеют прав администратора, ваш код не сможет вообще записывать в папку данных приложения –