zoukankan      html  css  js  c++  java
  • FTP判断ftp上是否有文件目录,没有就创建的具体案例

    /// <summary>
    /// 判断ftp上是否有指定的文件目录,没有创建
    /// </summary>
    /// <param name="ftpPath">指定路径</param>
    public void FtpDirectoryAndFile(string ftpPath)
    {
    int start = "ftp://192.168.1.198:21/".Length;
    int end = ftpPath.LastIndexOf("/") - start;
    string fullDir = ftpPath.Substring(start, end);

    string[] dirs = fullDir.Split('/');
    if (dirs != null && dirs.Length > 0)
    {
    string curDir = "ftp://192.168.1.198:21/";
    for (int i = 0; i < dirs.Length; i++)
    {
    string dir = dirs[i];
    if (dir != null && dir.Length > 0)
    {
    bool isContained = FtpDirIsExists(curDir, dir);
    if (isContained)
    {
    curDir += dir + "/";
    continue;
    }
    else
    {
    FtpMakeDir(curDir + dir);
    curDir += dir + "/";
    }
    }
    }
    }
    }

    /// <summary>
    /// 判断ftp上的文件目录是否存在
    /// </summary>
    /// <param name="dirName">要判断的ftp上的文件目录路径</param>
    /// <param name="folderName">ftp上的文件目录路径中是否包含该文件夹名称</param>
    /// <returns>true 包含,false 不包含</returns>
    public static bool FtpDirIsExists(string dirName, string folderName)
    {
    //string url = "ftp://" + FtpServerIP + "/" + dirName;
    FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(new Uri(dirName));
    ftpWebRequest.UseBinary = true;
    ftpWebRequest.Credentials = new NetworkCredential("www", "wwwjs");
    ftpWebRequest.Method = WebRequestMethods.Ftp.ListDirectory;
    StreamReader streamReader = null;
    Stream responseStream = null;
    bool isContained = false;
    try
    {
    using (FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse())
    {
    responseStream = ftpWebResponse.GetResponseStream();
    streamReader = new StreamReader(responseStream);
    string nameList = streamReader.ReadToEnd();
    streamReader.Close();
    responseStream.Close();
    string[] nameArr = nameList.Replace(" ", "#").Split(new string[] { "#"}, StringSplitOptions.RemoveEmptyEntries);
    for (int i = 0; i < nameArr.Length; i++)
    {
    if (nameArr[i].Equals(folderName))
    {
    isContained= true;
    break;
    }
    }
    return isContained;
    }
    }
    catch (Exception ex)
    {
    if (streamReader != null)
    {
    streamReader.Close();
    }
    if (responseStream != null)
    {
    responseStream.Close();
    }

    return false;
    }
    }

    /// <summary>
    /// 在FTP上创建目录
    /// </summary>
    /// <param name="dirName">要创建的目录名</param>
    public bool FtpMakeDir(string dirName)
    {
    FtpWebResponse response = null;
    StreamReader reader = null;
    try
    {
    //string uri = FtpServerIP + DateTime.Now.ToString("yyyyMMddHHmmss") + fileInfo.Name;
    FtpWebRequest reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(dirName));
    reqFTP.Credentials = new NetworkCredential("www", "wwwjs");
    //reqFTP.KeepAlive = false;
    reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
    reqFTP.UseBinary = true;
    response = (FtpWebResponse)reqFTP.GetResponse();
    reader = new StreamReader(response.GetResponseStream());
    string returnValue = reader.ReadToEnd();
    response.Close();
    reader.Close();
    return true;
    }
    catch (Exception ex)
    {

    if (response != null)
    {
    response.Close();
    }
    if (reader != null)
    {
    reader.Close();
    }
    return false;
    }

    }

     测试代码如下 

    string ss = "ftp://192.168.1.198:21/2018/11/222.pdf";
    FtpDirectoryAndFile(ss);
    string sss = "333";

  • 相关阅读:
    1363:小球(drop)
    ifstream ofstream c++中读写文件
    线性筛
    Network of Schools POJ
    Beautiful numbers CodeForces
    ipone6界面设计标准
    目前的前端框架有哪些
    什么是react native
    nth-child() 选择器
    html{height:100%}的意义以及body背景色的解析推断
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/9965278.html
Copyright © 2011-2022 走看看