Как правильно написать путь к файлу

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Подскажите как правильно составить путь к файлу?
Сделал так, но не пойму как правильно экранировать спец символы.
C#:
string txtPatch = Path.Combine(project.Directory + @"\Статьи\"+ searchPatch + \ + title_patch + \ + title_patch + ".txt");
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Подскажите как правильно составить путь к файлу?
Сделал так, но не пойму как правильно экранировать спец символы.
C#:
string txtPatch = Path.Combine(project.Directory + @"\Статьи\"+ searchPatch + \ + title_patch + \ + title_patch + ".txt");
Через запятую просто папки подавайте, а последним аргументом - имя файла. Получится вот такой путь.
C#:
string title_patch = "папка";
string txtPatch = Path.Combine(project.Directory,"папка",title_patch, title_patch + ".txt");
return txtPatch;
98527
 

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Через запятую просто папки подавайте, а последним аргументом - имя файла. Получится вот такой путь.
C#:
string title_patch = "папка";
string txtPatch = Path.Combine(project.Directory,"папка",title_patch, title_patch + ".txt");
return txtPatch;
Посмотреть вложение 98527
Ошибку выдает:
Выполнение действия CSharp OwnCode: Сохраняем текст в файл из переменной Json. Не удалось найти часть пути "C:\Users\cheru\YandexDisk-ruchernov\Зеннопостер\Мои шаблоны\Статьи\Психология\Фразы\Фразы.txt".
В чем может быть проблема?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Ошибку выдает:
Выполнение действия CSharp OwnCode: Сохраняем текст в файл из переменной Json. Не удалось найти часть пути "C:\Users\cheru\YandexDisk-ruchernov\Зеннопостер\Мои шаблоны\Статьи\Психология\Фразы\Фразы.txt".
В чем может быть проблема?
Путь действительно такой существует?
Может быть такое, что какой-то папки нет - проверьте путь.
 

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Путь действительно такой существует?
Может быть такое, что какой-то папки нет - проверьте путь.
Этот путь существует C:\Users\cheru\YandexDisk-ruchernov\Зеннопостер\Мои шаблоны\
А этот по сути должен создаться \Статьи\Психология\Фразы\Фразы.txt".
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Этот путь существует C:\Users\cheru\YandexDisk-ruchernov\Зеннопостер\Мои шаблоны\
А этот по сути должен создаться \Статьи\Психология\Фразы\Фразы.txt".
Подождите, Вы задали вопрос, как сформировать путь в строке.
Путь в строке мы сформировали?
Совпадает он с тем, который у Вас должен быть?
Вручную создайте нужные папки, создайте там файл.
Кликните правой кнопкой мышки с зажатым шифтом - получите реальный путь.
Сравните, то же самое в переменной или нет.
98528



Что касается того, что Вы пытаетесь сохранить файл по не существующему пути - это уже решение другого вопроса.
Если папка не существует - необходимо сначала создать папки, а потом уже писать туда файл.
C#:
string title_patch = "папка";
string txtPatch = Path.Combine(project.Directory,"папка",title_patch, title_patch + ".txt");

if(!Directory.Exists(Path.GetDirectoryName(txtPatch))) Directory.CreateDirectory(Path.GetDirectoryName(txtPatch));
File.WriteAllText(txtPatch, "текст");
98529

98530
 

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Вот код для сохранения файла:
C#:
File.AppendAllText(txtPatch, Environment.NewLine + title + Environment.NewLine + "" + Environment.NewLine + text);
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Вот код для сохранения файла:
C#:
File.AppendAllText(txtPatch, Environment.NewLine + title + Environment.NewLine + "" + Environment.NewLine + text);
Проверьте вот таким способом сначала существование пути, и если папок нет - они создадутся.
А потом уже Ваше сохранение файла.
C#:
if(!Directory.Exists(Path.GetDirectoryName(txtPatch))) Directory.CreateDirectory(Path.GetDirectoryName(txtPatch));
 
  • Спасибо
Реакции: cherus09

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Проверьте вот таким способом сначала существование пути, и если папок нет - они создадутся.
А потом уже Ваше сохранение файла.
C#:
if(!Directory.Exists(Path.GetDirectoryName(txtPatch))) Directory.CreateDirectory(Path.GetDirectoryName(txtPatch));
Спасибо! Теперь все работает:df:
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)