Suchprogramm bricht unerwünscht ab
-
Martin Richter schrieb:
Falsche Gruppe! Das ist nicht MFC sondern managed C++!
managed C++
Was für ein forum???
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
String* sDir
Du arbeitest hier mit Zeigern! In C++/CLI arbeitet man normalerweise mit dem ^(Hat) um ein handle auf verwalteten Speicher zu erzeugen! Dann klappt auch die Dereferenzierung mit -> !
Ersetze erstmal * durch ^!
MFG
Dappeljuh
-
Dappeljuh schrieb:
String* sDir
Du arbeitest hier mit Zeigern! In C++/CLI arbeitet man normalerweise mit dem ^(Hat)
Naja, das stimmt nicht ganz...
Das "^" wurde erst in VC2005 eingeführt. Zuvor hat man dafür "*" verwendet...
Also, alles in Ordnung...@*gast*: Was erwartetst Du denn was passieren soll, wenn Du den Ordner nicht "öffnen" kannst?
-
Ich hoffe es antwortet mir trotz Verspätung (hatte gestern noch anderes zu tun) jemand ...
Also meine Frage ist:
Welcher Fehler wird zurückgegeben, wenn ein Ordner nicht geöffnet werden kann?
Wie kann man das abfangen?
-
Wenn ichs richtig im Kopf hab, wirft die Anwendung eine FileNotFoundException. Diese kannst du dann mit dem entsprechenden catch Handler abfangen.
BTW: Wieso prüfst du nicht vorher ob der Ordner / die Datei vorhanden ist?Ich glaub Namespace System::IO;
File::Exist(path);Schau mal auf der MSDN Seite...
-
Es geht nicht um Ordner die nicht vorhanden sind, sondern um z.B. System-Ordner wie "System Volume Information" bei WinXP.
-
Auf diesen Ordner hat auch kein Admin Zugriff. DIEser Rechner ist nur für "Local System" zugänglich. Deshalb auch der Zugriffsfehler!
-
Den Fehler hatte ich letztens auch
Die Exception ist:
'System.UnauthorizedAccessException'Hast du eine Festplatte als Pfad angegeben ( z.B. "C:\" )?
-
Radikalvariante:
void DirSearch(String* sDir) { try { // Find the subfolders in the folder that is passed in. String* d[] = Directory::GetDirectories(sDir); int numDirs = d->get_Length(); for (int i=0; i < numDirs; i++) { // Find all the files in the subfolder. String* f[] = Directory::GetFiles(d[i],textBox1->Text); int numFiles = f->get_Length(); for (int j=0; j < numFiles; j++) { try{ listBox1->Items->Add(f[j]); } catch {} } DirSearch(d[i]); } } catch (System::Exception* e) { MessageBox::Show(e->Message); } }
-
Bei mir funkts so (CLR-Konsolenprogramm):
void DirSearch( String^ sDir) { try { array<String^>^ d = Directory::GetDirectories( sDir); int numDirs = d->Length; for( int i = 0; i < numDirs; i++) { try { String^ folder = "Text.txt"; //Suchdatei array<String^>^ f = Directory::GetFiles( d[i], folder); int numFiles = f->Length; for( int j = 0; j < numFiles; j++) { Console::WriteLine(f[j]); } DirSearch( d[i]); } catch( Exception^ ex) {} } } catch( System::Exception^ e) { Console::Write( e); } }
MfG