예제 #1
0
        private FileInformation GetSaveFileNameAndEncoding()
        {
            FileInformation returnValue = new FileInformation();

            // Изначально устанавливаем путь в Мои документы
            dialogSave.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            // Очищаем предыдущее имя файла
            dialogSave.FileName = string.Empty;

            // Если есть уже открытый файл
            if (fileName != string.Empty)
            {
                // Если расширение файла - txt, то имя файла без расширения
                // Если расширение файла другое, то имя файла с расширением

                if (Path.GetExtension(fileName).ToLower() == ".txt")
                {
                    dialogSave.FileName = Path.GetFileNameWithoutExtension(fileName);
                }
                else
                {
                    dialogSave.FileName = Path.GetFileName(fileName);
                }

                // Проверим, существует ли папка с файлом
                string fileFolder = Path.GetDirectoryName(fileName);
                if (Directory.Exists(fileFolder))
                {
                    dialogSave.InitialDirectory = fileFolder;
                }
            }

            if (dialogSave.ShowDialog() == DialogResult.OK)
            {
                // Пользователь выбрал файл, начинаем спрашивать у него кодировку

                returnValue.fileName = dialogSave.FileName;

                // Спрашиваем кодировку
                if (formEncoding == null) formEncoding = new FormEncoding();
                returnValue.fileEncoding = formEncoding.SelectEncoding(fileEncoding);
            }

            return returnValue;
        }
예제 #2
0
        private FileInformation GetOpenFileNameAndEncoding()
        {
            FileInformation returnValue = new FileInformation();

            // Изначально устанавливаем путь в Мои документы
            dialogOpen.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            // Если есть уже открытый файл, то установим его папку
            if (fileName != string.Empty)
            {
                // Проверим, существует ли эта папка?
                string fileFolder = Path.GetDirectoryName(fileName);
                if (Directory.Exists(fileFolder))
                {
                    dialogOpen.InitialDirectory = fileFolder;
                }
            }

            // Очищаем предыдущее имя файла
            dialogOpen.FileName = string.Empty;

            if (dialogOpen.ShowDialog() == DialogResult.OK)
            {
                // Пользователь выбрал файл, начинаем спрашивать у него кодировку

                returnValue.fileName = dialogOpen.FileName;

                // Попытаться определить кодировку файла по первым 2 или 3 байтам
                Encoding fileEncoding = CheckFileEncoding(returnValue.fileName);

                // Спрашиваем кодировку
                if (formEncoding == null) formEncoding = new FormEncoding();
                returnValue.fileEncoding = formEncoding.SelectEncoding(fileEncoding);
            }

            return returnValue;
        }