Dateiupload geht nicht!



  • Wenn ich mit meinem tool eine datei auf nen ftp transferieren will kommt die Fehlermeldung "2" (Datei ist nicht auf dem system verfühgbar)! Ich kann leider im code kein Fehler finden.

    void CGateway::OnUpload() 
    {
    	UpdateData();
    	int n_anzahl, i;
    	n_anzahl = m_list_lokal.GetSelCount();
    
    	CString str_Dateiname[100];
    	CArray<int,int> aryListBoxSel; 
    	aryListBoxSel.SetSize(n_anzahl); 
    	if ((n_anzahl>0)&&(n_anzahl<=100))
    	{
    		m_list_lokal.GetSelItems(n_anzahl, aryListBoxSel.GetData());
    
    		for( i = 0; i < aryListBoxSel.GetSize(); i++) 
    		{ 
    		   //holt sich an der gegebenen Stelle den String und schriebt ihn in str 
    		   m_list_lokal.GetText(aryListBoxSel.GetAt(i), str_Dateiname[i]); 	   
    		}
    	}		
    	if (!m_Bearbeiten.pConnection)
    	{
    		MessageBox("Es wurde keine FTP-Verbindung aufgebaut!",
    			"Fehler", MB_ICONWARNING);
    	}
    	else if (str_Dateiname[0] == "") 
    	{
    		MessageBox("Bitte wählen Sie eine oder mehrere Dateien!",
    			"Fehler", MB_ICONWARNING);
    	}
    	else
    	{
    		i = 0;
    		while (str_Dateiname[i]!="")
    		{
    			CString str_Dateiname_lokal;
    			int int_markiert = 0;
    
    			switch (m_int_Gatewayauswahl)
    			{
    			case 0:	// IDC_Alcatel
    				{
    					m_Bearbeiten.Upload(m_int_Gatewayauswahl, str_Dateiname[i]);
    					if(m_Bearbeiten.int_Transfer = 1)
    					{
    						MessageBox(m_Bearbeiten.m_str_message,NULL,MB_OK);
    					}
    					else
    					{
    						MessageBox(m_Bearbeiten.m_str_Fehler,"Fehler",MB_ICONWARNING);
    					}
    					break;
    				}
    			case 1:	// IDC_DTAG
    				{
    					int int_Dateityp;
    					CString str_Pfad;
    
    					str_Dateiname_lokal = str_Dateiname[i];
    
    					// Dateityp ermitteln
    					str_Dateiname_lokal = str_Dateiname_lokal.Left(6);
    
    					// Prüfen nach S12-MOD
    					if ((str_Dateiname_lokal=="LUABAA") | (str_Dateiname_lokal=="LUABEL") | 
    						(str_Dateiname_lokal=="LWYEAA") | (str_Dateiname_lokal=="LWYEEL")) 
    					{
    						int_Dateityp=0;
    					}
    					// Prüfen nach S12-SOKO
    					else if ((str_Dateiname_lokal=="Y5AT1S") | (str_Dateiname_lokal=="Y5AT5G"))
    					{
    						int_Dateityp=1;
    					}
    					else
    					{
    						// Dialog öffnen und manuelle Auswahl
    						CDateityp Typ;
    						Datei_auswahl:
    						int nResponse = Typ.DoModal();
    						if ((nResponse == IDOK) && (Typ.m_int_Dateityp!= -1))
    						{
    							int_Dateityp = Typ.m_int_Dateityp;
    							// Inhalt von m_Dateityp 
    							// S12-MOD		0
    							// S12-SOKO		1
    							// MML-Daten	2
    							// QuickFix		3
    						}
    						else if ((nResponse == IDCANCEL) || (Typ.m_int_Dateityp== -1))							
    						{
    							int int_MessageBox = MessageBox("Bitte wählen Sie den Dateityp aus!","Fehler",MB_YESNO);
    							if (int_MessageBox == 6)
    							{
    								goto Datei_auswahl;
    							}
    							else 
    							{
    							}
    							goto End;
    						}
    					}
    					switch (int_Dateityp)
    					{
    					case 0:
    						{
    							str_Pfad = "S12-Mod";
    							break;
    						}
    					case 1:
    						{
    							str_Pfad = "S12-Sokos";
    							break;
    						}
    					case 2:
    						{
    							str_Pfad = "MML-Daten";
    							break;
    						}
    					case 3:
    						{
    							str_Pfad = "Quick-Fix";
    							break;
    						}
    					}
    					m_Bearbeiten.pConnection->SetCurrentDirectory(str_Pfad);
    					CString str_test;
    					m_Bearbeiten.pConnection->GetCurrentDirectory(str_test);
    					m_Bearbeiten.Upload(m_int_Gatewayauswahl, str_Dateiname[i]);
    					if(m_Bearbeiten.int_Transfer == 1)
    					{
    						MessageBox(m_Bearbeiten.m_str_message,NULL,MB_OK);
    					}
    					else
    					{
    						MessageBox(m_Bearbeiten.m_str_Fehler,"Fehler",MB_ICONWARNING);
    					}
    					break;
    				}
    			case -1:
    				{
    					MessageBox("Bitte wählen Sie eine Serverliste",NULL,MB_OK);
    				}
    			}
    			End:
    			i++;
    		}
    
    	}
    }
    

    PS: Der Pfad von dem Ordner in dem sich die Dateien befinden, wird aus einer Textdatei ausgelesen!



  • Dann solltest du mal den Debugger benutzen.



  • Der debugger zeigt auch kein fehler an

    Hat niemand einen tip für mich? mein cheff reisst mir gleich den arsch auf 👎



  • Punisher schrieb:

    Hat niemand einen tip für mich? mein cheff reisst mir gleich den ***** auf 👎

    Kann es sein, dass du deinen Nick falsch gewählt hast ? 😃

    Spass beiseite:
    Ich habe jetzt nicht genau drauf geguckt, sondern mehr so überflogen (*flap* *flap*), kann mich also auch irren.
    Es sieht aber für mich so aus, also ob im Pfad (str_Pfad) nur irgendein Wort drin steht (z.B. MML-Daten). Ohne irgendwelche \ oder \\ klappt das bestimmt nicht. Oder wenigstens ein relativer Netzwerkpfad oder sonstwas müsste doch noch dazu.
    Und was m_Bearbeiten.Upload(...) letztendlich mit dem Dateinamen anstellt, erschliesst sich mir auch nicht...
    Also wie gesagt debuggen und gucken, was in den Variablen drin steht und ob das Programm mit dem Inhalt was anfangen kann.



  • der pfad heist c:\temp\asc...muss mal dannach gucken....die datein werden auch in der listbox angezeigt.

    Also der debugger sagt mir bei

    n_anzahl ---> 0 (in rot)
    str_Dateiname ---> {....beispiel.txt}
    i ---> 0 (in rot)

    anscheindend findet er ja die datei bloss mit der übergabe klappt irgendwas net...

    vll laber ich grad auch scheisse oder irgend was falsches. Keine ahnung vom programmieren!!! 🙄



  • in rot heißt, dass sich der Wert gerade eben geändert hat.

    Aber sonst bin ch ratlos. 😞



  • Kann mir wenigsdten seiner sagen was der fehler beim debuggenheist:

    m_int_Gatewayauswahl CXX0030 Fehler: Ausdruck kann nicht ausgeweret werden ?



  • Hmm, hab dein Code auch nur überflogen, doch denke das es sicherlich an m_Bearbeiten.Upload() liegt. Weil sonst sieht dein Code anständig aus...

    Arbeitest du mit CFtpConnection ? Wenn nicht, wäre es sinnvoll, da es dort eine Funktion gibt die PutFile() heißt....ist leicht anzuwenden...

    Gruß
    :: NoName ::



  • Weiss nicht,obs ne blöde Frage ist.

    Aber hast du im Pfadname immer \\ ?
    Kann es vielleicht auch sein,dass
    m_int_Gatewayauswahl keinen Wert hat?
    Was sagts im Debug?



  • Du hast noch nichtmal gesagt wo der Fehler auftritt. (An welcher Stelle im Code)

    Ich sagte ja. Debuggen, sonst kann dir niemand helfen. Der Source muss ja keine Fehler haben. Vielleicht ist es eine Fehler in den Variableninhalten.
    Wenn ein Fehler - "Datei wird nicht gefunden" - kommt dann wird sie auch nicht gefunden. Da muss man dann ansetzen warum.



  • Also der pfad wird so angegeben: c:\temp\asc. also immer mit \ \

    Ja ich arbeite mit CFtpConnection

    m_int_Gatewayauswahl ist beim debuggen immer 0 ?!?!

    Der fehler kommt nachdem ich mich mit user und passwort eingeloggt hab und die datei mit der maus markiert in der listbox markiert hab und dann auf den upload-butten gedrückt hab......... "2"


Anmelden zum Antworten