简介:
接上文实现对FTP的传送文件,此文和上文可以说是如出一辙,不过此文是通过cmd进行建立连接的,建立连接后也是通过以下几个步骤实现操作。建立文件的层级结构如上文,这里就不啰嗦了。C#实现FTP上传资料
1.主方法进行调用:
1
|
this .ftpOperation.UploadFile(vIMSPath, vUID, vPassword, vLocalPath + "/" + txtFile, txtFile); |
2.ftpOperation.cs 文件中的实现操作方法
2.1 主方法中调用的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public void UploadFile( string vPath, string vUID, string vPassword, string vLocalPath, string file) { bool status = false ; // status = connectState(vPath, vUID, vPassword); //通过cmd进行建立连接 if (status) { DirectoryInfo theFolder = new DirectoryInfo(vPath + "/" + file); string filename = vLocalPath; Transport(vLocalPath, vPath + "/" + file); //传送文件 System.Diagnostics.Process.Start(vPath); } else { MessageBox.Show( "未能连接!" ); } } |
2.2 通过调用cmd进行建立连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
public static bool connectState( string vPath, string vUID, string vPassword) { bool Flag = false ; Process proc = new Process(); try { proc.StartInfo.FileName = "cmd.exe" ; proc.StartInfo.UseShellExecute = false ; proc.StartInfo.RedirectStandardInput = true ; proc.StartInfo.RedirectStandardOutput = true ; proc.StartInfo.RedirectStandardError = true ; proc.StartInfo.CreateNoWindow = true ; proc.Start(); string dosLine = "net use " + vPath + " " + vPassword + "/user:" + vUID; proc.StandardInput.WriteLine(dosLine); proc.StandardInput.WriteLine( "exit" ); while (!proc.HasExited) { proc.WaitForExit(1000); } string errormsg = proc.StandardError.ReadToEnd(); proc.StandardError.Close(); if ( string .IsNullOrEmpty(errormsg)) { Flag = true ; } else { throw new Exception(errormsg); } } catch (Exception ex) { //throw ex; MessageBox.Show(ex.Message); } finally { proc.Close(); proc.Dispose(); } return Flag; } |
2.3 传送文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public static void Transport( string src, string fileName) { FileStream inFileStream = new FileStream(src, FileMode.Open); //if (!Directory.Exists(dst)) //{ // Directory.Move(src,dst); //} FileStream outFileStream = new FileStream(fileName, FileMode.OpenOrCreate); byte [] buf = new byte [inFileStream.Length]; int byteCount; while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0) { outFileStream.Write(buf, 0, byteCount); } inFileStream.Flush(); inFileStream.Close(); outFileStream.Flush(); outFileStream.Close(); File.Delete(src); //删除本地文件 } |
以上就是C#实现FTP传送文件的示例的详细内容,更多关于c# ftp传送文件的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/wml-it/p/12887003.html