/// <summary> /// Добавление разделителя пути (если необходимо) /// <example> /// Input: 'C:\Folder 1' /// Result: 'C:\Folder 1\' /// </example> /// </summary> public static String AddPathSeparator(String path) { if (path.IsValid()) { if (path.EndsWith(PATH_SEPARATOR) == false) path += PATH_SEPARATOR; } return path; }
/// <summary> /// Сохранение потока в файл /// </summary> public static Boolean Save(this Stream stream, String filename) { if (stream == null || filename.IsValid() == false) return false; if (stream.Length != 0) { // Создание директории файла String destPath = Files.GetPath(filename); if (Directory.Exists(destPath) == false) Files.CreateDir(destPath); using (FileStream fileStream = System.IO.File.Create(filename, (int)stream.Length)) { // Создание и заполнение массива данными из потокаwith the stream data Byte[] bytesInStream = new Byte[stream.Length]; stream.Position = 0; stream.Read(bytesInStream, 0, (int)bytesInStream.Length); // Запись в поток fileStream.Write(bytesInStream, 0, bytesInStream.Length); } // После using вызовется fileStream.Close() и файл будет записан } return true; }
/// <summary> /// Смена имени файла/директории /// </summary> public static Boolean Rename(String path, String newName) { if (path.IsValid() == false) return false; if (newName.IsValid() == false) return false; if (Files.IsExists(path) == false) return false; if (Files.IsFile(path)) { // Путь является файлом // Составление полного пути получателя String destPath = Files.GetPath(path) + newName; // Файл уже так называется if (destPath == path) return true; // Если файл существует: Удаление файла if (Files.IsExists(destPath)) DeleteFile(destPath); FileInfo info = new FileInfo(path); info.MoveTo(destPath); return true; } else if (Files.IsDirectory(path)) { // Путь является директорией // Составление полного пути получателя String destPath = Files.GetPathParent(path) + "\\" + newName; // Если файл существует: Удаление файла if (Files.IsExists(destPath)) DeleteDir(destPath); DirectoryInfo info = new DirectoryInfo(path); info.MoveTo(destPath); return true; } return false; }
/// <summary> /// Извлечение полного пути к файлу/директории /// </summary> /// <param name="path"></param> /// <returns></returns> public static String GetPath(String path) { if (path.IsValid()) { path = Path.GetDirectoryName(path); if (path.IsValid()) path = AddPathSeparator(path); } return path; }
/// <summary> /// </summary> protected static String Format(String message = null, Error? error = null) { var _error = error.IsNull() ? Error.Default.GetDescription() : error.GetDescription(); var _message = message.IsValid() ? message : _error; return String.Format("CSharpLess Exception: {0}", _message); }
/// <summary> /// Сохранение картинки /// </summary> public static String SaveImage(ImageSource imageSource, String filename = "") { SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = GetFilter(DialogFileTyp.Images, filename); dialog.FileName = filename.IsValid() ? filename : "image"; if (dialog.ShowDialog() == true) { filename = dialog.FileName; Files.SaveImage(imageSource, filename, ImageTyp.Unknow); return filename; } return ""; }