internal static string BringUrl(string fileName, byte[] fileData) { string folderPath = FileExporterConfig.GetSetting().BaseFolder; const string TmpFileFolder = "TempFiles"; if (folderPath == null || folderPath.Trim().Length <= 0) { folderPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, TmpFileFolder); } else { string p = Path.GetPathRoot(folderPath); if (p == null || p.Trim().Length <= 0) // 说明是相对路径 { folderPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, folderPath); } } if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } else { CleanOldFiles(folderPath); } string filePath = Path.Combine(folderPath, fileName); using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { stream.Write(fileData, 0, fileData.Length); } string vp = FileExporterConfig.GetSetting().VirtualPath; if (vp == null || vp.Trim().Length <= 0) { vp = TmpFileFolder; } else { vp = vp.Trim().Trim('/', '\\'); } return(vp + "/" + HttpUtility.UrlEncode(fileName)); }
private static void CleanOldFiles(string folderPath) { try { TimeSpan time = FileExporterConfig.GetSetting().GetExpiryTime(); DirectoryInfo directory = new DirectoryInfo(folderPath); FileInfo[] files = directory.GetFiles(); foreach (FileInfo file in files) { if (file.LastWriteTime.Date.Add(time) < DateTime.Now) { file.Delete(); } } } catch (Exception ex) { ExceptionHelper.HandleException(ex); } }
public static IFileExport CreateExporter(string exporterName) { ExporterSetting setting = FileExporterConfig.GetSetting(); if (setting != null && exporterName != null && exporterName.Trim().Length > 0) { if (setting.FileExporterList.ContainsKey(exporterName)) { string typeName = setting.FileExporterList[exporterName]; if (typeName != null && typeName.Length > 0) { Type type = Type.GetType(typeName, true); return((IFileExport)Activator.CreateInstance(type)); } } if (setting.Default != null && setting.Default.Length > 0 && setting.FileExporterList.ContainsKey(setting.Default)) { CreateExporter(setting.Default); } } return(new ExcelFileExporter()); }