コード例 #1
0
ファイル: DiaryForm.cs プロジェクト: TimonBur/PersonalTool
        /// <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();
        }
コード例 #2
0
        //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);
            }
        }
コード例 #3
0
ファイル: DiaryForm.cs プロジェクト: TimonBur/PersonalTool
        /// <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;
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        /// <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);
            }
        }
コード例 #6
0
        /// <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);
            }
        }
コード例 #7
0
ファイル: DiaryMethods.cs プロジェクト: TimonBur/PersonalTool
        /// <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);
        }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
ファイル: TaskForm.cs プロジェクト: TimonBur/PersonalTool
        /// <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);
        }