C# FTP 自动创建目录/上传文件
(2014-06-30 18:02:21)
-
//上传文件
-
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;
-
}
喜欢
0
赠金笔
加载中,请稍候......