У меня в контроллере есть SaveResult, настроенный для использования StreamWriter. Код работает отлично, для сохранения в файл, который существует.
Сохранить действие
[HttpPost]
[ValidateInput(false)]
public ActionResult Save(string fileName, string startTemplateUrl, string html)
{
string directoryname = Path.GetDirectoryName(fileName);
string filename = Path.GetFileName(fileName);
var lines = html;
var helper = (Server.MapPath(directoryname));
using (StreamWriter outputFile = new StreamWriter(Path.Combine(helper, filename)))
{
outputFile.WriteLine(lines);
return View();
}
}
Сейчас я работаю над созданием файла, и из того, что я прочитал, вы можете сделать это с StreamWriterхотя, когда я пытаюсь реализовать это, он говорит, что это не может быть найдено. Что говорит мне, что он ищет файл, а не создает его.
Поэтому я попытался реализовать это с помощью FileInfo. Кажется, у него есть все, что нужно, но он просто не сохраняется. Ниже мой последний код. Это не похоже на
fs.Write(lines);
У меня был блок try catch. на этом и он имел одинаковые результаты. То, что это не может найти это.
[HttpPost]
[ValidateInput(false)]
public ActionResult Create (string fileName, string startTemplateUrl, string html)
{
string directoryname = Path.GetDirectoryName(fileName);
string filename = Path.GetFileName(fileName);
var lines = html;
var helper = (Server.MapPath(directoryname));
var file = "Test\\" + filename;
var pathString = System.IO.Path.Combine(helper, "Test\\", filename);
FileInfo fi = new FileInfo(pathString);
if (fi.Exists)
{
fi.Delete();
}
using (FileStream fs = fi.Create())
{
fs.Write(lines);
return View();
}
}
Спасибо за вашу помощь!
Обновление:
Это сообщение, которое я получаю. Ниже сообщения у меня есть фактическая строка в каталог, скопированный из проводника папок ..
Exception thrown: 'System.IO.DirectoryNotFoundException' in mscorlib.dll
An exception of type 'System.IO.DirectoryNotFoundException' occurred in mscorlib.dll but was not handled in user code
Could not find a part of the path 'C:\Users\Scott\source\repos\HMIBuilder\HMIBuilder\Files\HMIBuider\Test\Test2.html'.
C:\Users\Scott\source\repos\HMIBuilder\HMIBuilder\Files\HMIBuilder\Test
Обновление:
Мне нужно посмотреть на мой код лучше! Это исправлено .. Код в самом верху отлично работает как для сохранения, так и для создания. Проблема была в переменных кода javascript, которые я кормил. Опечатка ... Если вы посмотрите на приведенное выше сравнение, которое я не уловил, слишком много долгих ночей, я полагаю, HMIBuilder пишется как HMIBuider ... в ошибке.