FTP之获取路径占用大小

public void GetFtpFolerSize(ref UInt64 size, string ServerIP, string USERID, string PassWord, string path)
{
if (path == null)
path = "";
FtpWebRequest reqFtp;
try
{
reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ServerIP + "/" + path));
reqFtp.KeepAlive = true;
reqFtp.UseBinary = true;
reqFtp.UsePassive = true;
reqFtp.Credentials = new NetworkCredential(USERID, PassWord);
reqFtp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
WebResponse response = reqFtp.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
List<string> listPath = new List<string>();
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (line != "." && line != "..")
{
if (!line.Contains("<DIR>")) // non dir
{
int end = line.LastIndexOf(' ');
int start = line.IndexOf(" ");
string filename = line.Substring(end + 1);
if (filename.Contains("."))
{
line = line.Replace(filename, "");
size += UInt64.Parse(line.Substring(start).Trim());
}
}
else
{
string folerNm = "";
FtpClient fc = new FtpClient();
fc.ParseFolderNameFromWindowStyle(line, ref folerNm);
listPath.Add(path + "/" + folerNm);
}
}
}
reader.Close();
response.Close();
foreach (var strPath in listPath)
{
GetFtpFolerSize(ref size, ServerIP, USERID, PassWord, strPath);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}

}

posted @ 2017-09-28 14:38  Jazz_Law  阅读(835)  评论(0编辑  收藏  举报
#RecentCommentsBlock li { margin: 0; width: 275px; } #RecentCommentsBlock li.recent_comment_body { border-radius: 0; margin: 0; } #RecentCommentsBlock li.recent_comment_title { border-radius: 5px 5px 0 0; margin: 3px 0 0; } #RecentCommentsBlock li.recent_comment_author { border-radius: 0 0 5px 5px; margin: 0; } .desc_img{ width:75px; max-width:75px; } #blog-calendar{ background:white; } /* comment */ div.commentform{ margin-bottom:100px; } #commentform_title { background: url("http://static.cnblogs.com/images/icon_addcomment.gif") no-repeat scroll 0 2px; color: #0078d8; font-size:14px; } div.commentform p{ margin-bottom:10px; } .comment_btn { height: 35px; width: 90px; background: none repeat scroll 0 0 #0078d8; border: 0 none; border-radius: 5px; color: white; cursor:pointer; } .comment_btn:hover{ background:#317ef3; } #commentbox_opt,#commentbox_opt + p { text-align:center; } #tbCommentBody{ width:100%; resize:none; } #tbCommentAuthor,#tbCommentBody{ border:1px solid #0078d8; } #tbCommentBody:hover{ border:1px solid #fca021; } #comments > h3 { background: none repeat scroll 0 0 #0078d8; border-radius: 3px; color: white; padding: 8px; border:0 none; font-size:14px; } #comments{ font-size: 13px; } #comments h4{ margin-top:10px; } #comments h4 span { color: #6c6351; font-size: 12px; } .comment_actions { border-bottom: 1px dashed #0078d8; display: block; padding-bottom: 10px; } .blog_comment_body { color: #111; font-size: 13px; margin-bottom: 10px; margin-top: 10px; } #comment_nav { font-size: 14px; margin-top: 10px; text-align: right; }