Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static string CreateZipFile(int Guia)
- {
- // a bool variable that says whether or not the file was created
- string isCreated = string.Empty;
- try
- {
- UniCaribe.Model.Reps.GuiaDeEstudioRepository _Rep = new Model.Reps.GuiaDeEstudioRepository();
- UniCaribe.Model.Entities.GuiaDeEstudio guia = new Model.Entities.GuiaDeEstudio();
- guia = _Rep.GetById(Guia);
- string zipFileName = guia.Asignatura.Descripcion;
- string ruta = System.Configuration.ConfigurationManager.AppSettings["CarpetaDatos"].ToString();
- string rutaFinal = ruta + zipFileName + "\\Guia";
- //Creando el directorio de la guia
- if (!Directory.Exists(ruta + zipFileName))
- {
- Directory.CreateDirectory(ruta + zipFileName);
- }
- else
- {
- //Borrando la guia anterior
- Directory.Delete(ruta + zipFileName, true);
- //Escribiendo la guia nueva
- Directory.CreateDirectory(ruta + zipFileName);
- //Creando la carpeta Guia
- Directory.CreateDirectory(rutaFinal);
- }
- foreach (var uni in guia.Unidades)
- {
- foreach (var ele in uni.Elementos)
- {
- ////Buscando imagenes en el contenido
- if (ele.Contenido.ToLower().Contains("/guia/elementos/datos/images/"))
- {
- string contenido = ele.Contenido;
- string match = "src=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:jpg|png|gif|bmp|jpge|jpeg))(?:\"|\')?";
- var abc = System.Text.RegularExpressions.Regex.Split(contenido.ToLower(), match);
- foreach (var i in abc)
- {
- if (i.StartsWith("/guia/elementos/datos/images/"))
- {
- if (File.Exists(HttpContext.Current.Server.MapPath(i)))
- {
- File.Copy(HttpContext.Current.Server.MapPath(i), rutaFinal + "/" + i.Replace("/guia/elementos/datos/images/", ""), true);
- }
- }
- }
- }
- if (!string.IsNullOrEmpty(ele.Archivo))
- {
- //Moviendo Directorios
- if (ele.Tipo == 14)
- {
- string directorio = ele.Archivo.Split('.')[0].ToString();
- if (System.IO.Directory.Exists(ruta + directorio))
- {
- DirectoryInfo directoryInicio = new DirectoryInfo(ruta + directorio);
- DirectoryInfo directoryFinal = new DirectoryInfo(rutaFinal + "\\" + directorio);
- CopyAll(directoryInicio, directoryFinal);
- }
- }
- else
- {
- //Moviendo Archivos
- if (File.Exists(ruta + ele.Archivo))
- {
- if (File.Exists(ruta + ele.Archivo))
- {
- File.Copy(ruta + ele.Archivo, rutaFinal + "/" + ele.Archivo, true);
- }
- }
- }
- }
- }
- ////Buscando imagenes en el contenido de las unidades
- if (uni.Contenido.ToLower().Contains("/guia/elementos/datos/images/"))
- {
- string contenido = uni.Contenido;
- string match = "src=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:jpg|png|gif|bmp|jpge|jpeg))(?:\"|\')?";
- var abc = System.Text.RegularExpressions.Regex.Split(contenido.ToLower(), match);
- foreach (var i in abc)
- {
- if (i.StartsWith("/guia/elementos/datos/images/"))
- {
- if (File.Exists(HttpContext.Current.Server.MapPath(i)))
- {
- File.Copy(HttpContext.Current.Server.MapPath(i), rutaFinal + "/" + i.Replace("/guia/elementos/datos/images/", ""), true);
- }
- }
- }
- }
- }
- //Escribiendo la guia
- EscribirGuia(rutaFinal + "/", guia.Id);
- //Moviendo el ejecutable
- if (System.IO.Directory.Exists(ruta + "GuiaSistema"))
- {
- string[] dir = System.IO.Directory.GetDirectories(ruta + "GuiaSistema");
- foreach (string dirin in dir)
- {
- string[] filesin = System.IO.Directory.GetFiles(dirin);
- if (!Directory.Exists(rutaFinal + "\\" + Path.GetFileName(dirin))) Directory.CreateDirectory(rutaFinal + "\\" + Path.GetFileName(dirin));
- // Copy the files and overwrite destination files if they already exist.
- foreach (string s in filesin)
- {
- // Use static Path methods to extract only the file name from the path.
- string fileName = System.IO.Path.GetFileName(s);
- string destFile = System.IO.Path.Combine(rutaFinal + "\\" + Path.GetFileName(dirin), fileName);
- if (File.Exists(s))
- {
- System.IO.File.Copy(s, destFile, true);
- }
- }
- }
- string[] files = System.IO.Directory.GetFiles(ruta + "GuiaSistema");
- // Copy the files and overwrite destination files if they already exist.
- foreach (string s in files)
- {
- // Use static Path methods to extract only the file name from the path.
- string fileName = System.IO.Path.GetFileName(s);
- string destFile = string.Empty;
- if (fileName == "Guia.vbs")
- {
- destFile = System.IO.Path.Combine(ruta + zipFileName, fileName);
- }
- else
- {
- destFile = System.IO.Path.Combine(rutaFinal, fileName);
- }
- if (File.Exists(s))
- {
- System.IO.File.Copy(s, destFile, true);
- }
- }
- }
- //success!
- isCreated = ruta + zipFileName;
- }
- catch (Exception ex)
- {
- //failed
- isCreated = string.Empty;
- //lets throw our error
- throw ex;
- }
- //return the creation status
- return isCreated;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement