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; }
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; }