/// <summary> /// Обработчик события изменения элемента списка /// Считываем данные по файлу из списка. /// </summary> private void listBoxDocuments_SelectedIndexChanged(object sender, EventArgs e) { var listBox = (ListBox)sender; //Проверяем, чтобы список был не пустой if (listBox.Items == null || listBox.Items.Count == 0 || listBox.SelectedItem == null) { return; } var value = listBox.SelectedItem.ToString(); var path = GetFullPathStoryFileByFileName(value); //Получаем расширение из имени файла HelperFileName.ParsePath(path, out var _, out var __, out var ext); //Получаем нужный объект для считывания документа (зависит от расширения) IDocumentReader reader = HelperDocumentReader.CreateReader(ext); if (reader == null) { this.TextContainerDocumentContent.TextField.Text = "Не удалось считать данные из документа!"; return; } reader.OpenDocument(path); if (reader.ReadAllTextData(out var data)) { this.TextContainerDocumentContent.TextField.Text = data; } reader.CloseDocument(); }
//public void SendTextMessage public bool SaveTelegramFile(FileData file, string filePath) { if (file == null || string.IsNullOrEmpty(filePath)) { return(false); } HelperFileName.ParsePath(filePath, out var dir, out var filename, out var extension); if (Directory.Exists(dir) == false) { return(false); } try { if (File.Exists(filePath)) { File.Delete(filePath); } File.Create(filePath).WriteAsync(file.Data, 0, file.Data.Length); return(true); } catch { return(false); } }
/// <summary> /// Сохраняем записи дневника /// </summary> void SaveDiaryData() { string fileName; //Если есть файл с текущей датой if (HasFileForCurrentDate(out fileName)) { //удалим файл с текущей датой. File.Delete(fileName); } var fileTitle = this.StoryTextContainer.Title; fileName = GetFileNameForSaving(fileTitle); //Проверим, если директория не существует HelperFileName.ParsePath(fileName, out var dir, out var _, out var __); if (Directory.Exists(dir) == false) { HelperDialog.ShowWarningDialog("Укажите в настройках путь к папке записей", "Не найдена папка для записей!"); return; } this.Diary.Open(fileName); FillTextFields(); if (this.Diary.SaveInfo()) { this.Diary.IsSaved = true; } }
public void OpenDocument(string path) { if (File.Exists(path) == false) { throw new Exception("Invalid path word document!"); } HelperFileName.ParsePath(path, out var dir, out var fname, out var ext); if (extensions.Contains(ext) == false) { return; //ToDo обработать когда не нашли doc extension } this.App = new Application(); this.Doc = this.App.Documents.Open(path); }
/// <summary> /// Считываем данные из файла /// </summary> /// <param name="filePath"></param> public void ReadDataFromFile(string filePath) { HelperFileName.ParsePath(filePath, out var dir, out var filename, out var ext); if (string.IsNullOrEmpty(dir.Trim(' ')) || string.IsNullOrEmpty(filename.Trim(' ')) || string.IsNullOrEmpty(ext.Trim(' '))) { throw new ArgumentNullException("Один из параметров пуст!"); } if (System.IO.File.Exists(filePath) == false) { throw new Exception($"файл [{filePath}] не существует!"); } using (FileStream fs = new FileStream(filePath, FileMode.Open)) { fs.ReadAsync(this.File.Data, 0, this.File.Data.Length); } }
/// <summary> /// Сохранить данные в файл /// </summary> /// <param name="filePath"></param> public void SaveDataToFile(string filePath) { HelperFileName.ParsePath(filePath, out var dir, out var filename, out var ext); if (string.IsNullOrEmpty(dir.Trim(' ')) || string.IsNullOrEmpty(filename.Trim(' ')) || string.IsNullOrEmpty(ext.Trim(' '))) { throw new ArgumentNullException("Один из параметров пуст!"); } if (Directory.Exists(dir) == false) { throw new Exception($"Directory [{dir}] doesn't exists!"); } using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate)) { fs.WriteAsync(this.File.Data, 0, this.File.Data.Length); } }
/// <summary> /// Получить имена файлов дневника из директории историй (использую для listBox) /// </summary> /// <param name="dir"></param> /// <returns></returns> List <string> GetDiaryFilesNames(string dir = null) { if (dir == null && storyDirectory != null) { dir = storyDirectory; } var docs = GetDiaryFiles(dir); if (docs == null || docs.Count == 0) { return(null); } for (var i = 0; i < docs.Count; i++) { HelperFileName.ParsePath(docs[i], out var _, out var fname, out var __); docs[i] = fname; } return(docs); }
/// <summary> /// Переименовать файл проекта /// </summary> /// <returns>Если удачно переименовали, то возвращаем true, else false</returns> private bool RenameProjectFile(string newFileName) { //Поменять имя файла проекта HelperFileName.ParsePath(this.Project.ProjectFilePath, out var dir, out var fname, out var ext); string newPath = dir + "\\" + newFileName + ext; if (File.Exists(this.Project.ProjectFilePath) == false) { try { using (var stream = File.Create(newPath)) { } } catch { //Поймали ошибку, не смогли переименовать файл, возвращаем false return(false); } return(true); } try { File.Move(this.Project.ProjectFilePath, newPath); } catch { //Поймали ошибку, не смогли переименовать файл, возвращаем false return(false); } return(true); }
/// <summary> /// Получаем имена всех файлов проектов, или MyProjects в формате xml /// </summary> /// <returns></returns> private List <(string path, string fileName)> GetAllProjectFileNames() { var allFiles = Directory.GetFiles(ProjectsDirectory).ToList(); if (allFiles == null || allFiles.Count == 0) { return(null); } List <(string path, string fileName)> files = new List <(string, string)>(); foreach (var projItemControl in this.ProjectsPanel.Controls) { ProjectItem projItem = projItemControl as ProjectItem; if (projItem == null) { continue; } if (allFiles.Contains(projItem.Project.ProjectFilePath)) { allFiles.Remove(projItem.Project.ProjectFilePath); } } foreach (var path in allFiles) { HelperFileName.ParsePath(path, out var _, out var fname, out var ext); if (string.Equals(ext, ".xml") == true) { files.Add((path, fname)); } } return(files); }