当前位置: 首页 > news >正文

网站建设的文本事例网站建设公司天成

网站建设的文本事例,网站建设公司天成,福州微信网站制作,帮传销做网站会违法吗C# .NET 8实现Windows下批量压缩csv文件为zip文件#xff0c;然后异步上传到box企业云服务网盘路径#xff0c;实现异常处理和写入运行状态日志#xff0c;参数来自ini配置文件。 C# .NET 8代码示例#xff0c;包含INI配置读取、CSV文件压缩、Box上传、异步处理和日志记录…C# .NET 8实现Windows下批量压缩csv文件为zip文件然后异步上传到box企业云服务网盘路径实现异常处理和写入运行状态日志参数来自ini配置文件。 C# .NET 8代码示例包含INI配置读取、CSV文件压缩、Box上传、异步处理和日志记录功能 using System.Collections.Concurrent; using System.IO.Compression; using IniParser; using IniParser.Model; using Box.V2; using Box.V2.Auth; using Box.V2.Config; using Box.V2.Models;class Program {private static readonly object _logLock new object();private static string _logPath;static async Task Main(string[] args){try{// 读取配置文件var config LoadConfiguration(config.ini);// 初始化Box客户端var boxClient InitializeBoxClient(config);// 处理文件await ProcessFilesAsync(config, boxClient);}catch (Exception ex){Log($全局异常: {ex.Message});}}static Configuration LoadConfiguration(string configPath){var parser new FileIniDataParser();IniData iniData parser.ReadFile(configPath);return new Configuration{ClientId iniData[BoxConfig][ClientId],ClientSecret iniData[BoxConfig][ClientSecret],AccessToken iniData[BoxConfig][AccessToken],UploadFolderId iniData[BoxConfig][UploadFolderId],SourceFolder iniData[FileConfig][SourceFolder],ZipFolder iniData[FileConfig][ZipFolder],LogPath iniData[FileConfig][LogPath]};}static BoxClient InitializeBoxClient(Configuration config){_logPath config.LogPath;var auth new OAuthSession(config.AccessToken, N/A, 3600, bearer);var boxConfig new BoxConfigBuilder(config.ClientId, config.ClientSecret, new Uri(http://localhost)).Build();return new BoxClient(boxConfig, auth);}static async Task ProcessFilesAsync(Configuration config, BoxClient boxClient){try{Directory.CreateDirectory(config.ZipFolder);Directory.CreateDirectory(Path.GetDirectoryName(_logPath));var csvFiles Directory.GetFiles(config.SourceFolder, *.csv);Log($找到 {csvFiles.Length} 个CSV文件需要处理);var tasks new ConcurrentBagTask();Parallel.ForEach(csvFiles, csvFile {tasks.Add(ProcessSingleFileAsync(csvFile, config, boxClient));});await Task.WhenAll(tasks);Log(所有文件处理完成);}catch (Exception ex){Log($文件处理异常: {ex.Message});}}static async Task ProcessSingleFileAsync(string csvFile, Configuration config, BoxClient boxClient){try{string zipFileName ${Path.GetFileNameWithoutExtension(csvFile)}_{DateTime.Now:yyyyMMddHHmmss}.zip;string zipPath Path.Combine(config.ZipFolder, zipFileName);// 压缩文件CreateZipFile(csvFile, zipPath);Log($文件 {Path.GetFileName(csvFile)} 压缩成功);// 上传到Boxawait UploadToBoxAsync(boxClient, zipPath, config.UploadFolderId);Log($文件 {zipFileName} 上传成功);// 清理临时压缩文件可选File.Delete(zipPath);}catch (Exception ex){Log($处理文件 {Path.GetFileName(csvFile)} 失败: {ex.Message});}}static void CreateZipFile(string sourceFile, string zipPath){using (var zipArchive ZipFile.Open(zipPath, ZipArchiveMode.Create)){zipArchive.CreateEntryFromFile(sourceFile, Path.GetFileName(sourceFile));}}static async Task UploadToBoxAsync(BoxClient client, string filePath, string folderId){using (var fileStream new FileStream(filePath, FileMode.Open)){var fileRequest new BoxFileRequest{Name Path.GetFileName(filePath),Parent new BoxRequestEntity { Id folderId }};await client.FilesManager.UploadAsync(fileRequest, fileStream);}}static void Log(string message){string logEntry ${DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message};lock (_logLock){File.AppendAllText(_logPath, logEntry Environment.NewLine);}} }public class Configuration {public string ClientId { get; set; }public string ClientSecret { get; set; }public string AccessToken { get; set; }public string UploadFolderId { get; set; }public string SourceFolder { get; set; }public string ZipFolder { get; set; }public string LogPath { get; set; } }实现说明 配置管理 使用IniParser包读取INI配置文件配置参数包括Box认证信息、文件路径和日志路径Configuration类用于存储配置参数 Box客户端初始化 使用OAuth 2.0认证需要有效的访问令牌AccessToken 文件处理 使用并行处理加速文件压缩Parallel.ForEach每个文件生成带时间戳的唯一ZIP文件名自动清理临时压缩文件可选 异步上传 使用Box官方SDK的异步上传方法支持大文件分块上传SDK自动处理 日志记录 线程安全的日志写入机制包含时间戳和详细操作记录支持并发写入时的文件锁定 异常处理 多层异常捕获全局、文件处理、单个文件详细的错误信息记录 配置示例config.ini [BoxConfig] ClientId your_client_id ClientSecret your_client_secret AccessToken your_access_token UploadFolderId 0[FileConfig] SourceFolder C:\CSVFiles ZipFolder C:\TempZips LogPath C:\Logs\upload.log注意事项 Box认证 需要有效的Box开发者账号和企业配置建议使用JWT认证代替直接访问令牌需修改认证逻辑 性能优化 根据网络情况调整并行处理数量添加重试逻辑处理网络波动 安全增强 敏感信息如ClientSecret建议加密存储使用配置文件权限控制 扩展功能 添加文件校验MD5校验和实现增量上传功能添加压缩密码保护 错误处理 添加不同异常类型的处理逻辑实现死信队列处理持续失败文件 使用时需要安装以下NuGet包 ini-parserBox.V2 安装包和发布Release版程序的脚本 cd .csproj文件所在的目录 dotnet add package Box.V2 dotnet add package ini-parser dotnet build .csproj文件完整路径 /property:GenerateFullPathstrue /consoleloggerparameters:NoSummary /p:ConfigurationRelease /p:PlatformAnyCPU
http://www.hkea.cn/news/14302638/

相关文章:

  • 怎么看网站是什么语言做的后台网站添加在线qq聊天
  • 网站建设后台管理流程网站的开发费用吗
  • 建设工程交易中心网站收费标准宁波网站建设流程有哪些
  • 三明购物网站开发设计wordpress 博客编辑
  • 内衣网站建设详细方案沈阳网站建设联系方式
  • 怎么做赌钱网站南昌网站建设工作
  • 一起做网站欧洲站wordpress登录后台404
  • 免费网站建设服务wap版网站 加app提示
  • 推广网站有哪些wordpress新建页面发布失败
  • 做二手的网站有哪些wordpress语言更换
  • 秦皇岛 免费建网站凡科互动游戏可以作弊码
  • 通化市建设工程招投标网站江宁区住房和城乡建设局网站
  • 百度公司网站制作网站建设与排名
  • 会宁县建设局网站网站 外包方案
  • 东阳营销型网站建设品牌天辰建设网站公司
  • 邢台建设局网站上中标公示查询公众号运营的推广方法
  • 崇文手机网站建设建设银行客户投诉网站
  • 中国建设部网站关于资质wordpress 手机管理
  • 网投怎么做网站青海建设协会网站
  • 坪山网站设计的公司成都旅游景点攻略
  • 做京东网站需要哪些手续费wordpress 在线预览
  • 自己搭服务器 做购物网站成本2022装修简约风格效果图
  • 贵州安顺建设局网站免费追剧永久免费app
  • iis如何发布asp.net网站wordpress 财经插件
  • 深圳优秀网站建设网站建设建材
  • 建站宝盒如何使用纪念馆展厅设计
  • 一 网站建设管理基本情况保险哪家好
  • 巫山集团网站建设一站式快速网站排名多少钱
  • 建网站公司销售广州网站建设鞍山
  • 网站设计怎么保持风格一致平面设计师推荐网站