none
FTP Server nach bestimmtem Textdokument mit bestimmten Inhalt durchsuchen. RRS feed

  • Frage

  • Hallo,

    Ich hab'ne Frage. Ich tüfftle schon eine ganze Weile an einem Script dass meinen FTP Server nach einem bestimmtem Textdokument mit bestimmten Inhalt durchsucht und mir das in einer TextBox ausgibt... 

    Ich komm aber nicht drauf wie... Ich habe bereits das Forum nach ähnlichen Fragen durchforstet und gegoogelt ergab aber keinen Treffer. Ergo komm ich zu euch...

    1. Die bestimmte File nennt sich RFIDCode.txt

    2. Hat der Server sehr viele Unterordner

    3. Ja ich weiß das FTP nicht sicher ist, aber der Server agiert nur lokal.

    Mein Code kann ich leider nicht hinzufügen, da dieser aussiehst wie sonst was...

    Ich bräuchte sehr dringend Hilfe!!!

    Danke im voraus für jede Hilfe!

    Sonntag, 12. Januar 2020 20:59

Alle Antworten

  • Ich komm aber nicht drauf wie... !

    Das sieht FTP einfach nicht vor, Dateien nach Namen in Unterverzeichnissen suchen zu lassen und erst recht nicht nach Inhalten. FTP ist nur ein Übertragungsprotokoll.

    Du musst alle Unterordner auf dem FTP Server durch iterieren und die Dateien mit dem Namensmuster suchen, diese dann per FTP herunter laden und dabei den Inhalt durchsuchen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Montag, 13. Januar 2020 06:59
  • Könnten sie mir bitte einen Beispiel Code zeigen?

    Ich hab zwar auch ein der enthält aber sehr viele Error-Meldungen...

    LG

    Montag, 13. Januar 2020 18:48
  • Hi,

    poste bitte deinen Code und deine Fehlermeldungen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 13. Januar 2020 22:24
    Moderator
  • Code für was genau? Ich nutze in einem Tool FluentFTP, das Abrufen der Dateien-Liste eines Ordners sieht so aus:

    Using client = New FtpClient()
        client.Credentials = getFtpCredentials()
        client.Host = getFtpHostString()
        client.Connect()
    
        Dim files = client.GetListing()
        For Each file In files
            Dim fileIformation As New FileInformation(file)
            fileIformation.Modified = client.GetModifiedTime(file.Name).AddHours(My.Settings.TargetFtpTimeOffsetCorrectionHours)
            fileIformation.Created = fileIformation.Modified
            FileCombinationList.UpdateFileInformation(fileIformation, FileTypeEnumeration.FtpFile)
            Thread.Sleep(2)
        Next
    
        client.Disconnect()
    End Using


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 14. Januar 2020 07:57
  • Ich bräuchte eine die in alle verzeichnisse geht und eine TXT nach einem String überprüft...

    Hier ist mein Code:

     private void RFID_Suchen_BackWorker_DoWork(object sender, DoWorkEventArgs e)
            {
                FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + IP_TextBox.Text + ":" + Port_TextBox.Text + "/FTP-Serverdaten/Kühlschrank/"));
    
                ftpRequest.Credentials = new NetworkCredential(Benutzer_TextBox.Text, Passwort_TextBox.Text);
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
                StreamReader streamReader = new StreamReader(response.GetResponseStream());
    
                string ausg = streamReader.ReadToEnd();
                string[] newausg = ausg.Split(',');
                foreach(string aa in newausg)
                {
                    
                    /*FtpWebRequest tftpRequest = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + IP_TextBox.Text + ":" + Port_TextBox.Text + "/FTP-Serverdaten/Kühlschrank/"+ aa +",/"));
    
                    tftpRequest.Credentials = new NetworkCredential(Benutzer_TextBox.Text, Passwort_TextBox.Text);
                    tftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                    FtpWebResponse tresponse = (FtpWebResponse)tftpRequest.GetResponse();
                    StreamReader RFIDSuch = new StreamReader(tresponse.GetResponseStream());
                    string sss = RFIDSuch.ReadToEnd();
                    string Filter = ".txt";
                    char[] FilterArray = Filter.ToCharArray();
                    string[] newsss = sss.Split(FilterArray);
                    foreach (string s in newsss)
                    {*/
                        this.textBox1.Invoke(new MethodInvoker(delegate
                        {
    
    
                            textBox1.AppendText(aa);
                           
    
                        }));
                    //}
                    
                    
                        FtpWebRequest atftpRequest = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" + IP_TextBox.Text + ":" + Port_TextBox.Text + "/FTP-Serverdaten/Kühlschrank/"+ aa +",/RFID-Code.txt"));
    
                        atftpRequest.Credentials = new NetworkCredential(Benutzer_TextBox.Text, Passwort_TextBox.Text);
                        atftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
                        FtpWebResponse atresponse = (FtpWebResponse)atftpRequest.GetResponse();
                        Stream responseStream = atresponse.GetResponseStream();
                        using (FileStream writer = new FileStream("C://Tempdata/TD/RFID-Code.txt", FileMode.Create))
                        {
    
                            long length = atresponse.ContentLength;
                            int bufferSize = 2048;
                            int readCount;
                            byte[] buffer = new byte[2048];
    
                            readCount = responseStream.Read(buffer, 0, bufferSize);
                            while (readCount > 0)
                            {
                                writer.Write(buffer, 0, readCount);
                                readCount = responseStream.Read(buffer, 0, bufferSize);
    
                            }
                            writer.Close();
                        }
                    StreamReader www = new StreamReader("C://Tempdata/TD/RFID-Code.txt");
                    string etw = www.ReadToEnd();
                    if(etw == "#NIX")
                    {
                        this.label11.Invoke(new MethodInvoker(delegate
                        {
    
    
                            label11.Text = "HAHA!";
    
    
                        }));
                    }
                    File.Delete("C://Tempdata/TD/RFID-Code.txt");
                    
                    
                }
           


    Dienstag, 14. Januar 2020 17:27
  • Könnten sie mir bitte helfen (Geposteter Code);

    Danke

    Donnerstag, 16. Januar 2020 19:35