C# 利用Rar压缩文件并FTP上传
来源:互联网 发布:如何查询淘宝商品类目 编辑:程序博客网 时间:2024/05/18 01:36
1.利用Rar压缩文件
/// <summary> /// 使用Rar压缩文件 /// </summary> /// <param name="fromFilePath">待压缩文件路径</param> /// <param name="rarFilePath">压缩后的文件路径</param> /// <returns>返回压缩结果</returns> public string RarFile(string fromFilePath, string rarFilePath) { try { //Rar程序安装目录 var fileName = @"C:\Program Files\WinRAR\rar.exe"; //命令行参数 var arguments = " a " + rarFilePath + " " + fromFilePath; var startInfo = new ProcessStartInfo(); startInfo.FileName = fileName; startInfo.Arguments = arguments; startInfo.WindowStyle = ProcessWindowStyle.Hidden; //打包文件存放目录 var dir = Path.GetDirectoryName(fromFilePath); if (dir != null) { startInfo.WorkingDirectory = dir; var process = new Process { StartInfo = startInfo }; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.Start(); process.WaitForExit(); var output = process.StandardOutput.ReadToEnd(); var errMsg = process.StandardError.ReadToEnd(); process.Close(); //rar可能是中文版或英文版 if (output.IndexOf("完成", StringComparison.Ordinal) > -1 || output.ToLower().IndexOf("done", StringComparison.Ordinal) > -1) { return "完成"; } } return "文件所在目录不存在"; } catch (Exception ex) { return ex.Message; } }调用方法:
//将文件压缩到同级目录
var fromFile = "";
var dir = Path.GetDirectoryName(fromFile);
var name = Path.GetFileNameWithoutExtension(fromFile);
var tofile = dir.Combine(name + ".zip");
var result = RarFile(fromFile, tofile);
2.通过FTP上传文件
/// <summary> /// Ftp上传文件 /// </summary> /// <param name="localFile">本地文件路径</param> /// <param name="ftpServer">ftp服务器地址</param> /// <param name="ftpUserName">ftp用户名</param> /// <param name="ftpPassword">ftp用户密码</param> /// <returns></returns> public string Upload(string localFile, string ftpServer, string ftpUserName, string ftpPassword) { if (File.Exists(localFile)) { var fileInfo = new FileInfo(localFile); using (var fileStream = fileInfo.OpenRead()) { var length = fileStream.Length; var request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpServer + "/" + fileInfo.Name); request.Credentials = new NetworkCredential(ftpUserName, ftpPassword); request.Method = WebRequestMethods.Ftp.UploadFile; request.UseBinary = true; request.ContentLength = length; request.Timeout = 10 * 1000; try { var stream = request.GetRequestStream(); var BufferLength = 1024 * 1024; //1M var b = new byte[BufferLength]; int i; while ((i = fileStream.Read(b, 0, BufferLength)) > 0) { stream.Write(b, 0, i); } stream.Close(); stream.Dispose(); return "上传完毕"; } catch (Exception ex) { return ex.Message; } } } return "本地文件不存在!"; }通过以上方式,再做个定时任务,可以将服务器文件定期备份到指定的ftp上。
0 0
- C# 利用Rar压缩文件并FTP上传
- C#调用RAR压缩文件
- C#解压RAR压缩文件
- C#解压RAR压缩文件
- C# 解压RAR压缩文件
- c#用rar压缩文件
- C#压缩解压RAR压缩文件
- C#压缩解压RAR压缩文件
- C#实现从FTP服务器下载压缩文件并解压.
- C#解压RAR压缩文件(--转载--测试通过)
- C#解压RAR压缩文件[通过软件压包解包]
- java 利用系统WinRAR解压缩(zip/rar压缩文件)
- python利用watchdog监控目录并上传到ftp
- rar 打包并压缩文件,排除文件前缀目录
- C#操作压缩文件(rar,zip,gzip,winform/asp.net)
- C#操作压缩文件(rar,zip,gzip,winform/asp.net)
- C#操作压缩文件(rar,zip,gzip,winform/asp.net)
- RAR 压缩文件管理器
- uboot配置过程(mkconfig脚本+其他)
- android官方training课程
- Win10 卸载 Cortana
- 第16题:3Sum Closest
- Unity3d学习笔记(2)--一个太阳系的实现
- C# 利用Rar压缩文件并FTP上传
- .NET框架-微软C#编程风格官方指南
- SQL学习01
- C++学习记录10--冒泡排序
- svm学习笔记1
- cordova 插件调用activity和结果返回
- 上拉电阻与下拉电阻的作用和区别
- MyBatis学习二 MyBatis的配置文件详解
- Minimum Time Difference