Autor Beitrag
Arthuro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 06.11.07 13:41 
Guten Tag,

Seit mir nicht sauer wenn ich was falsch gemacht hab ist mein erster Post. Also zu meiner Frage ich möchte gerne das parfiles in der zweiten if anweisung abgefragt wird leider krieg ich aber dort nicht den dateinamen raus, wer weiß auch wo immer, liegt wohl an der list. Kann ich das auch noch irgendwie anders machen bzw. was mich falsch ? Ich lese über ein Array einen Ordner ein wo ganz viele datei sind und ich möchte diese nun rausfiltern das er mir nur die datein anzeigt mit der dateiendung rar. und dann in einer listview anzeigt. Wie mache ich das ?

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
                    string[] _Datein;
                    string filename = dlgFileOpen.SelectedPath.ToString();
                    List<string> parfiles = new List<string>();
                    
                    _Datein = Directory.GetFileSystemEntries(filename);
                    _Datein.Length.ToString();

                    foreach (string in_datein in _Datein)
                    {
                        if (Path.GetExtension(in_datein) == ".rar")
                        {
                            parfiles.Add(in_datein);
                            //parfiles.ToArray();
                        }

                        if (File.Exists(parfiles.ToString()))
                        {
                           //Hier ist noch eine Zeile aber die ist Geheim *g*

                            BuildList(parfiles.ToString());
                        }
                        else
                        {
                            MessageBox.Show("Keine .rar Datei");
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            } 
        }
            int BuildList(string parfiles)
            {
                ListViewItem liste = null;
                liste = listView1.Items.Add(parfiles.ToString());

                if (File.Exists(parfiles.ToString()))
                {
                    liste.SubItems.Add("Ja");
                }
                else
                {
                    liste.SubItems.Add("Nein");
                }

                return 0;
            }
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 06.11.07 14:45 
Hi und :welcome:!

Was Du versuchst, ist, eine List<String> in einen String umzuwandeln und dann zu schauen, ob es eine Datei gibt, die so heisst. Das kann nicht funktionieren ;-) Ebenso schiebst Du die String-Repräsentation der gesamten Liste die BuildList-Methode, auch das macht keinen Sinn.

Ich hab mal ein paar Kommentare ran geschrieben:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
 string[] _Datein; //"_" am Anfang ist schlechter Stil. Außerdem heisst es "Dateien" mit e vorm n.
                    string filename = dlgFileOpen.SelectedPath.ToString();
                    List<string> parfiles = new List<string>();
                    
                    _Datein = Directory.GetFileSystemEntries(filename); //Directory.GetFiles(..) liefert direkt nur Dateien
                    _Datein.Length.ToString(); //Wozu?

                    foreach (string in_datein in _Datein) //"_"!
                    {
                        if (Path.GetExtension(in_datein) == ".rar")
                        {
                            parfiles.Add(in_datein);
                            //parfiles.ToArray();
                        }

                        if (File.Exists(parfiles.ToString())) //File.Exists(in_datein) sollte es sein?
                        {
                           //Hier ist noch eine Zeile aber die ist Geheim *g*
                            BuildList(parfiles.ToString()); //auch hier als Parameter nur in_datein?
                        }
                        else
                        {
                            MessageBox.Show("Keine .rar Datei"); //wirklich? Die Prüfung auf ".rar" wird in der vorigen if-Anweisung gemacht
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            } 
        }
            int BuildList(string parfiles)
            {
                ListViewItem liste = null;
                liste = listView1.Items.Add(parfiles.ToString()); //parfiles ist schon ein String

                if (File.Exists(parfiles.ToString())) //Hier nochmal dasselbe prüfen wie oben?
                {
                    liste.SubItems.Add("Ja");
                }
                else
                {
                    liste.SubItems.Add("Nein");
                }

                return 0;
            }


Ausprobiert hab ich den Code allerdings nicht, weiß also nicht, ob ich alles gefunden habe ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Arthuro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 06.11.07 14:59 
Danke, bin erstaunt über die Antwort, in anderen Foren wird man ja direkt nieder gemacht und so ausführlich hätte ich das gar nicht erwartet *g*

Vielen Dank ich werde das gleich mal durchgehen habe es aufjeden fall jetzt geschafft in dem ich die if anweisung ganz weglasse und dafür eine zweite foreach nehmen und somit den dateinamen kriege.

Gruß Arthuro
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 06.11.07 15:02 
user profile iconArthuro hat folgendes geschrieben:
Danke, bin erstaunt über die Antwort, in anderen Foren wird man ja direkt nieder gemacht und so ausführlich hätte ich das gar nicht erwartet *g*
Gern geschehen ;-)

user profile iconArthuro hat folgendes geschrieben:
Vielen Dank ich werde das gleich mal durchgehen habe es aufjeden fall jetzt geschafft in dem ich die if anweisung ganz weglasse und dafür eine zweite foreach nehmen und somit den dateinamen kriege.
Hm. Klingt umständlich, zeig mal her :lupe:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".