自己做的网站如何加视频教程邯郸网站建设怎么开发

张小明 2026/3/12 18:00:57
自己做的网站如何加视频教程,邯郸网站建设怎么开发,网站维护要什么,郑州管家网站托管导出数据文件功能#xff0c;上线一段时间#xff0c;发现无法导出文件#xff0c;调试发现文件名称含有产品名称#xff0c;但是产品名称有非法字符#xff0c;导致导出文件失败。直接开发个工具类过滤下即可。直接上代码#xff1a;1. 高性能文件名非法字符清理工具Fil…导出数据文件功能上线一段时间发现无法导出文件调试发现文件名称含有产品名称但是产品名称有非法字符导致导出文件失败。直接开发个工具类过滤下即可。直接上代码1. 高性能文件名非法字符清理工具FileNameSanitizer/// summary /// 高性能文件名非法字符清理工具 /// 支持Windows/Linux/Mac平台的非法字符检测和清理 /// /summary public static class FileNameSanitizer { // Windows系统非法字符 (不包括路径分隔符因为这里只处理文件名) private static readonly char[] WindowsInvalidChars new char[] { , , , |, *, ?, :, \\, / }; // 预编译正则表达式用于高性能匹配 private static readonly Regex InvalidCharRegex new Regex( [|*?:\\/], RegexOptions.Compiled | RegexOptions.CultureInvariant ); /// summary /// 清理文件名中的非法字符 /// /summary /// param namefileName原始文件名/param /// returns清理后的文件名/returns public static string SanitizeFileName(string fileName) { if (string.IsNullOrEmpty(fileName)) return fileName; // 使用StringBuilder提高性能 var sb new StringBuilder(fileName.Length); foreach (char c in fileName) { // 检查是否为非法字符 if (Array.IndexOf(WindowsInvalidChars, c) -1) { sb.Append(c); } // 跳过非法字符不添加到结果中 } string sanitized sb.ToString(); // 确保文件名不为空如果所有字符都被移除 if (string.IsNullOrEmpty(sanitized)) sanitized _; // 移除首尾空白字符 sanitized sanitized.Trim(); // 确保文件名不以 . 结尾这在某些系统上可能导致问题 if (sanitized.EndsWith(.)) sanitized sanitized.TrimEnd(.); return sanitized; } /// summary /// 使用正则表达式的快速清理方法 /// /summary /// param namefileName原始文件名/param /// returns清理后的文件名/returns public static string SanitizeFileNameRegex(string fileName) { if (string.IsNullOrEmpty(fileName)) return fileName; // 使用预编译的正则表达式替换非法字符 string sanitized InvalidCharRegex.Replace(fileName, ); // 确保文件名不为空 if (string.IsNullOrEmpty(sanitized)) sanitized _; // 移除首尾空白字符 sanitized sanitized.Trim(); // 确保文件名不以 . 结尾 if (sanitized.EndsWith(.)) sanitized sanitized.TrimEnd(.); return sanitized; } /// summary /// 检查文件名是否包含非法字符 /// /summary /// param namefileName待检查的文件名/param /// returns是否包含非法字符/returns public static bool ContainsInvalidChars(string fileName) { if (string.IsNullOrEmpty(fileName)) return false; foreach (char c in fileName) { if (Array.IndexOf(WindowsInvalidChars, c) ! -1) return true; } return false; } }2.数据导出工具类DataExporter/// summary /// 数据导出工具类 /// 提供高性能的数据导出和文件名清理功能 /// /summary public class DataExporter { /// summary /// 导出数据到文件并自动清理文件名中的非法字符 /// /summary /// param namedata要导出的数据/param /// param namefileName原始文件名/param /// param namedirectory目标目录/param /// returns实际保存的完整路径/returns public static string ExportData(byte[] data, string fileName, string directory ) { // 清理文件名 string cleanFileName FileNameSanitizer.SanitizeFileName(fileName); // 构建完整路径 string fullPath Path.Combine(directory, cleanFileName); // 确保目录存在 string dirPath Path.GetDirectoryName(fullPath); if (!string.IsNullOrEmpty(dirPath) !Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } // 写入文件 File.WriteAllBytes(fullPath, data); return fullPath; } /// summary /// 导出文本数据到文件 /// /summary /// param nametext要导出的文本/param /// param namefileName原始文件名/param /// param nameencoding文本编码/param /// param namedirectory目标目录/param /// returns实际保存的完整路径/returns public static string ExportText(string text, string fileName, Encoding encoding null, string directory ) { if (encoding null) encoding Encoding.UTF8; // 清理文件名 string cleanFileName FileNameSanitizer.SanitizeFileName(fileName); // 构建完整路径 string fullPath Path.Combine(directory, cleanFileName); // 确保目录存在 string dirPath Path.GetDirectoryName(fullPath); if (!string.IsNullOrEmpty(dirPath) !Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } // 写入文件 File.WriteAllText(fullPath, text, encoding); return fullPath; } }3.测试static void Main() { // 测试文件名清理 string[] testFileNames { test\file.txt, datainfo.csv, report|summary.pdf, my?document.docx, file*name.exe, normal_file.txt, :\\\\|?* illegal chars, spaced file , .hidden., }; Console.WriteLine(文件名清理测试:); foreach (string originalName in testFileNames) { string cleaned FileNameSanitizer.SanitizeFileName(originalName); bool hasInvalid FileNameSanitizer.ContainsInvalidChars(originalName); Console.WriteLine($原文件名: {originalName} - 清理后: {cleaned} (含非法字符: {hasInvalid})); } Console.WriteLine(\n性能对比测试:); // 性能测试 string testFileName performance_test_:\\|?*.txt; int iterations 100000; // 测试逐字符清理方法 var sw System.Diagnostics.Stopwatch.StartNew(); for (int i 0; i iterations; i) { FileNameSanitizer.SanitizeFileName(testFileName); } sw.Stop(); Console.WriteLine($逐字符清理方法 ({iterations} 次): {sw.ElapsedMilliseconds} ms); // 测试正则表达式清理方法 sw.Restart(); for (int i 0; i iterations; i) { FileNameSanitizer.SanitizeFileNameRegex(testFileName); } sw.Stop(); Console.WriteLine($正则表达式清理方法 ({iterations} 次): {sw.ElapsedMilliseconds} ms); // 实际导出示例 Console.WriteLine(\n导出示例:); try { string exportedPath DataExporter.ExportText( 这是测试数据, exportdata.csv, Encoding.UTF8, output ); Console.WriteLine($成功导出到: {exportedPath}); } catch (Exception ex) { Console.WriteLine($导出失败: {ex.Message}); } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中山市网站开发织梦仿wordpress

在 Android Studio 中使用 Git 历史记录相关的功能有以下几种方式: 1. 内置的 Git 工具 Android Studio 自带强大的 Git 集成: 查看提交历史 方式1:VCS → Git → Show History方式2:右键文件/目录 → Git → Show History方式…

张小明 2026/3/5 4:14:46 网站建设

物流网个人网站建设wordpress视频收费插件

3分钟极速修复:六音音源完美兼容洛雪音乐全攻略 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 还在为洛雪音乐升级后无法播放而苦恼?六音音源修复项目为您提供简单高效的…

张小明 2026/3/5 4:14:43 网站建设

江西建网站海外贸易平台

智能求职插件:3分钟识别岗位时效性的终极解决方案 【免费下载链接】NewJob 一眼看出该职位最后修改时间,绿色为2周之内,暗橙色为1.5个月之内,红色为1.5个月以上 项目地址: https://gitcode.com/GitHub_Trending/ne/NewJob …

张小明 2026/3/5 4:14:47 网站建设

传奇网站传奇网络运营合同范本

近日遇到一个Excel文档,从第9行到第866行设置的行高非常小,导致这些行的数据无法阅读,如下图:上面的第9行到第866行并未被隐藏,使用取消隐藏命令并不能让数据显示,如果用鼠标按住左侧行号区域的行高控制线向…

张小明 2026/3/5 4:14:48 网站建设

三维网站搭建教程合肥网站建设优化学习

第一章:Open-AutoGLM工作流核心架构解析Open-AutoGLM 是一个面向生成式语言模型自动化推理与任务编排的开源框架,其核心架构设计聚焦于模块解耦、流程可扩展性与执行效率优化。系统通过统一的任务调度层协调多阶段处理单元,实现从输入解析、上…

张小明 2026/3/5 4:14:47 网站建设

如何制作一个优秀网站建设国际机票搜索量大涨

macOS iSCSI存储扩展方案:让苹果电脑变身网络存储中心 【免费下载链接】iSCSIInitiator iSCSI Initiator for macOS 项目地址: https://gitcode.com/gh_mirrors/is/iSCSIInitiator 想要为您的Mac电脑增加无限存储空间吗?macOS iSCSI Initiator是一…

张小明 2026/3/5 4:14:49 网站建设