簡體   English   中英

Directory.GetFiles 從 FTP 站點

[英]Directory.GetFiles from FTP site

我在我的 asp.net 應用程序中使用此方法將上傳文件從本地目錄傳輸到 azure 存儲。 我現在想做同樣的事情,但使用 FTP 文件夾中的文件。 我已經研究過FtpWebRequest ,但不確定它如何或是否可以與當前方法一起使用?

foreach (string strFile in Directory.GetFiles("myftpsite", "*.jpg"))
{
    blob = blobContainer.GetBlobReference(strFile);
    blob.UploadFile(strFile);                
}
    public string[] directoryListDetailed(string directory)
    {
        try
        {
            /* Create an FTP Request */
            ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
            /* Log in to the FTP Server with the User Name and Password Provided */
            ftpRequest.Credentials = new NetworkCredential(user, pass);
            /* When in doubt, use these options */
            ftpRequest.UseBinary = true;
            ftpRequest.UsePassive = true;
            ftpRequest.KeepAlive = true;
            /* Specify the Type of FTP Request */
            ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
            /* Establish Return Communication with the FTP Server */
            ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
            /* Establish Return Communication with the FTP Server */
            ftpStream = ftpResponse.GetResponseStream();
            /* Get the FTP Server's Response Stream */
            StreamReader ftpReader = new StreamReader(ftpStream);
            /* Store the Raw Response */
            string directoryRaw = null;
            /* Read Each Line of the Response and Append a Pipe to Each Line for Easy Parsing */
            try
            {

                string[] separator = { "", " " };
                while (ftpReader.Peek() != -1) 
                   {
                       bool flg = false; 

                     foreach (var word in ftpReader.ReadLine().Split (separator , StringSplitOptions.RemoveEmptyEntries))
                     {

                         if (flg == true)
                         { directoryRaw += word.ToString() + "|"; flg = false; }
                         if (word.ToString () == "<DIR>")
                            flg = true;

                     }
                   } 
            }
            catch (Exception ex) { Console.WriteLine(ex.ToString()); }
            /* Resource Cleanup */
            ftpReader.Close();
            ftpStream.Close();
            ftpResponse.Close();
            ftpRequest = null;
            /* Return the Directory Listing as a string Array by Parsing 'directoryRaw' with the Delimiter you Append (I use | in This Example) */
            try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }
            catch (Exception ex) { Console.WriteLine(ex.ToString()); }
        }
        catch (Exception ex) { Console.WriteLine(ex.ToString()); }
        /* Return an Empty string Array if an Exception Occurs */
        return new string[] { "" };
    }

要列出 FTP 文件夾中的所有文件,請參閱:http: //msdn.microsoft.com/en-us/library/ms229716.aspx

我不知道直接閱讀它們的任何方法,所以我會將它們下載到本地計算機並將它們上傳到您需要它們的任何地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM