Member 14013003 Ответов: 2

Сделать текстовый файл в mydocuments


сделать текстовый файл в MyDocuments
текстовый файл не будет создан

Что я уже пробовал:

Directory.CreateDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) , "Stopwatch Data"));

            var sb = new StringBuilder();
           

            foreach (var i in listBox2.Items)
            {
                sb.AppendLine(i.ToString());
                

            }
            string sb2 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
            File.WriteAllText(sb2+@"Stopwatch Data/userdata.text", sb.ToString());

Richard MacCutchan

После того, как каждая строка создана, вам нужно отобразить ее или использовать отладчик, чтобы точно увидеть, что вы создаете.

2 Ответов

Рейтинг:
2

Sheepings

Это создаст файл в папке Мои документы под названием, например, userdata.текст. Файл будет записан в папку данных секундомера, как я полагаю, вы пытались сделать?

var dir = Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Stopwatch Data")); 
/* Path.Combine combines two paths */

if (!Directory.Exists(dir)) /* Check if the directory exists */
Directory.CreateDirectory(dir); /*If it doesn't, we create it */

StringBuilder sb = new StringBuilder();

foreach (string Item in listBox2.Items)
{
    sb.AppendLine(Item); 
    /* Appends a new line with the item value from the listbox */
}

var file = Path.Combine(dir, "userdata.text"); /* Combine the directory with the file name */

File.WriteAllText(file, sb.ToString()); 
/* Write the file. If not exists, it will create it. If exists, it will overwrite it */


Рейтинг:
12

Luc Pattyn

Привет,

1. приведенный код не компилируется
2. как только ошибка компиляции будет исправлена, она запускается и создает файл (не там, где вы ожидаете!)
3. вы не должны использовать + для объединения частей пути, вот что такое путь.Combine is for (и может быть полезно знать, что он принимает более двух аргументов!)
4. Вы не должны вычислять имя папки дважды
5. Когда вы забываете "разделитель каталогов" (косая черта), вы получаете неожиданный файл на один уровень выше в файловой иерархии
6. Вы должны поместить экспериментальный (или даже весь) код в блок try/catch и отобразить и/или записать в файл любое возникающее исключение
7. и, наконец, простые задачи, подобные этой, должны быть легко решены с помощью отладчика: одношаговый код, просмотр переменных и поиск проблем.

:)


Member 14013003

спасибо, что я использую Слэш (/) и работаю

<3