.Net FTP 自动创建目录/上传文件

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//上传文件 
public static Boolean FtpUpload(string ftpPath,string localFile) 
    //检查目录是否存在,不存在创建 
    FtpCheckDirectoryExist(ftpPath); 
    FileInfo fi = new FileInfo(localFile); 
    FileStream fs = fi.OpenRead(); 
    long length = fs.Length; 
    FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + ftpPath + fi.Name); 
    req.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
    req.Method = WebRequestMethods.Ftp.UploadFile; 
    req.ContentLength = length; 
    req.Timeout = 10 * 1000; 
    try 
    
        Stream stream = req.GetRequestStream(); 
        int BufferLength = 2048; //2K    
        byte[] b = new byte[BufferLength]; 
        int i; 
        while ((i = fs.Read(b, 0, BufferLength)) > 0) 
        
            stream.Write(b, 0, i); 
        
        stream.Close(); 
        stream.Dispose(); 
    
    catch (Exception e) 
    
        ErrLog(e.Message + e.StackTrace); 
        return false
    
    finally 
    
        fs.Close(); 
        req.Abort(); 
    
    req.Abort(); 
    return true
   
//判断文件的目录是否存,不存则创建 
public static void FtpCheckDirectoryExist(string destFilePath) 
    string fullDir = FtpParseDirectory(destFilePath); 
    string[] dirs = fullDir.Split('/'); 
    string curDir = "/"
    for (int i = 0; i < dirs.Length; i++) 
    
        string dir = dirs[i]; 
        //如果是以/开始的路径,第一个为空   
        if (dir != null && dir.Length > 0) 
        
            try 
            
                curDir += dir + "/"
                FtpMakeDir(curDir); 
            
            catch (Exception) 
            {} 
        
    
   
public static string FtpParseDirectory(string destFilePath) 
    return destFilePath.Substring(0, destFilePath.LastIndexOf("/")); 
}   
   
//创建目录 
public static Boolean FtpMakeDir(string localFile) 
    FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + localFile); 
    req.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
    req.Method = WebRequestMethods.Ftp.MakeDirectory; 
    try 
    
        FtpWebResponse response = (FtpWebResponse)req.GetResponse(); 
        response.Close(); 
    
    catch (Exception) 
    
        req.Abort(); 
        return false
    
    req.Abort(); 
    return true

  

posted @   好名字可以让你的朋友更容易记住你  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示