Autor Beitrag
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Sa 08.08.15 18:22 
Hallo Leute. Ich habe es zwar geschaft alle Files mit Pfad aus einem Ordner zu bekommen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
string[] files = Directory.GetFiles(Properties.Settings.Default.sHTML);

            foreach(string file in files)
            {
                this.comboBox1.Items.Add(file.ToString());
            }


Nun habe ich aber den Pfad. Ich möchte aber NUR die Namen der jeweiligen Ordner. Wie komme ich an diese?
Mfg :)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 08.08.15 19:00 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 08.08.15 19:20 
Zitat:
Ich möchte aber NUR die Namen der jeweiligen Ordner

Du holst Files aus genau einem Ordner warum willst du jetzt aus den Files den Namen des Ordners herausbekommen? Das macht irgendwie keinen Sinn für mich.
Denn die Antwort kennst du schon sie steht in Properties.Settings.Default.sHTML. Wenn du nur den Namens des Ordners aus dem Pfad ermitteln willst dann via
ausblenden C#-Quelltext
1:
var folderName = Path.GetFileName(Properties.Settings.Default.sHTML);					

Path.GetFileName liefert immer den letzten Teil eines Pfades egal ob das ein File oder ein Ordner ist.

Zitat:
Bitte bemühe die MSDN Suche für solche Kleinigkeiten.

Ich vermute es fehlt eher beim Stellen verständlicher Fragen ;)
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Sa 08.08.15 19:36 
Erstmal Sorry für die schlechte Fragestellung :autsch:

In dem Ordner (also Directory) sind ja Files. Dort befinden sich die einzelnen HTML / CSS- Elemente. In dem Ordner Namens HTML sind Files z.B. namens Projekt 1, Projekt 2...

Mit dem Code, den ich in der Frage geschrieben habe, bekomme ich den Pfad für jeden dieser Files. Ich möchte aber nur den Namen der Files haben (Projekt 1, Projekt 2)...

Ich hoffe ihr könnt meine Frage jetzt beantworten. :gruebel:
LG Yannic M.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 08.08.15 19:38 
Auch das mit Path.GetFileName.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Sa 08.08.15 20:42 
Also im meinem Fall ist dies HTML. HTML (also das Directotry) ist aber ein Unterordner, der alle Files beinhaltet. Also ist diese Methode auch nicht das Gelbe vom Ei. Ich hoffe ihr könnt mir eriterhelfen.

LG :o
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 08.08.15 22:30 
Wenn das nicht das gewünschte liefert, liegt das aber nicht an der Funktion, denn die macht das richtige, sondern an deiner Verwendung. Wie sieht denn dein aktueller Quelltext aus?
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Sa 08.08.15 23:19 
Ihr müsst euch Vorstellen:
Ich habe einen Ordner mit dem Namen meines Programms in den Dokumenten eingefügt. In dem Ordner befinden sich 3 Unterordner Namens HTML (Properties.Settings.Default.sHTML), CSS (Properties.Settins.Default.sCSS) und einen Ordner Namens sonstiges.

Der Unterordner namens HTML beinhaltet alle Projekte, die über die rtb_html gespeichert wurden.
Der Unterordner namens CSS beinhaltet alle Projekt, die über die rtb_css gespeichert wurden.

Angenommen man startet das Programm, gibt in die rtb_html einen dic- Container ein und verknüpft diesen über die rtb_css mit CSS und geht auf speichern. Dann erscheint ein Dialogfeld wo man den Namen von diesem Projekt eingibt. Dann haben sowohl die HTML- Datei als auch die CSS- Datei den selben Namen nur halt mit .css und .html Unterschied.

Mein Quellcode zum speichern:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  private void Speichern()
        {
            
            string yy = Path.ChangeExtension(html_pfad, ".html");
            using(StreamWriter se = new StreamWriter(yy))
            {
                try
                {
                    se.Write(rtb_html.Text);
                    se.Close();
                    ist_gespeichert = true;
                }
                catch(Exception ex )
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }


zum Speichern unter:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
 private void speichern_unter()
        {
            Form2 a = new Form2();
            a.label1.Text = "Bitte geben Sie den Namen des Projekts ein: ";
            a.ShowDialog();

            if(Form2.eingabe != null)
            {
                try
                {
                    html_pfad = Path.Combine(Properties.Settings.Default.sHTML, Form2.eingabe.ToString());
                    string y = Path.ChangeExtension(html_pfad, ".html");
                    using (StreamWriter writer1 = new StreamWriter(y))
                    {
                        writer1.Write(rtb_html.Text);
                        writer1.Close();
                        ist_gespeichert = true;
                    }
                 }
             }
         }


Das gleiche geschieht natürlich analog zu .css.

Und hier wird die ganze Sache in eine ComboBox gepackt:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
  private void Form4_Load(object sender, EventArgs e)
        {
            string files = Path.GetFileName(Properties.Settings.Default.sHTML);
            this.comboBox1.Items.Add(files);
        }


Und da erscheint jetzt nur "HTML".
Mfg
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 08.08.15 23:35 
Ich zitiere mal deine Frage aus Beitrag 1.

Zitat:
Ich möchte aber NUR die Namen der jeweiligen Ordner.


Wenn alle Dateien in einem Ordner liegen der "HTML" heißt dann ist das Anzeigen von "HTML" richtig und genau das wonach du gefragt hast. Du wolltest den Ordnernamen!!!

Wenn ich versuche mal irgendwas sinnvolles zwischen den Zeilen zu lesen ... möchtest du vielleicht nur die Filenamen der Files die in diesem Ordner liegen sehen ohne Pfad?
Dann nimm den Code aus deinen ersten Beitrag leiste die minimale Transferleistung mit der Methode die wir dir genannt haben und füge du ein.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
string[] files = Directory.GetFiles(Properties.Settings.Default.sHTML);
foreach(string file in files)
{
    this.comboBox1.Items.Add(Path.GetFileName(file));   
}
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Sa 08.08.15 23:40 
Vielem Dank für ihre Antwort.

Aber was ist den zwischen meinen Zeilen unsinnvoll?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 09.08.15 11:14 
Sinnvoll ist vielleicht der falsche Begriff.
Aber du beschreibst zu viel was wir nicht wissen können, vermutlich für uns auch irrelevant ist, lässt aber Details weg zu denen wir uns dann den Rest zusammenreimen müssen.

Ein Beispiel:
Zitat:
"Angenommen man startet das Programm, gibt in die rtb_html einen dic- Container ein und verknüpft diesen über die rtb_css mit CSS und geht auf speichern."

-Was ist ein dic-Container?
-Man gibt was ein und verknüpft dadurch was?
-rtb_css? Vermutlich ein UI Control? Was ist da drin css oder der Filename mit dem ".css"-File?

Der Satz enthält vermutlich für das Verständnis deines Problems nichts relevantes. Jedenfalls kann man den vermutlich in seiner Gesamtheit nur verstehen wenn man deine Gedanken liest.
Was du vermutlich wolltest habe ich dann daran erraten das du im letzten Code die Variable files genannt hast. Und damit nahe lag das es dir nicht um den Ordner sondern um die Files im dem Ordner geht und du die Dateinamen (mit oder ohne Extension habe ich noch nicht durchschaut) ohne Pfad anzeigen möchtest.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 09.08.15 12:56 
- Nachträglich durch die Entwickler-Ecke gelöscht -