pfad überprüfen auf Existenz

Ich hoffe habe das Proble erkannt.
Nö. Wenn eine Exception kommen würde, wüde man das merken,
egal ob mit oder ohne try-catch. Es kommt aber keine, es wird einfach false zurückgegeben.

Zum Casten: Wenns bei der Messagebox geht, kanns nicht das Problem sein.

Und bitte "Bearbeiten" drücken, statt Doppelposts machen,
 
Nö. Wenn eine Exception kommen würde, wüde man das merken,
egal ob mit oder ohne try-catch. Es kommt aber keine, es wird einfach false zurückgegeben.

Zum Casten: Wenns bei der Messagebox geht, kanns nicht das Problem sein.

Und bitte "Bearbeiten" drücken, statt Doppelposts machen,

Ist mir klar das try catch so nicht funtioniert wenn er es aber mit dem Objekt machen würde was ich nicht sehe bekommt er eine Exception
Code:
try
{
DirectoryInfo infoFiles = new DirectoryInfo(node);
bool of = infoFiles.Exists};
catch(Exception e)
{
MessageBox.shoe(e.toString());
}
Ich sehe das Problem eh nicht, da wenn ich mit DirectoryInfo arbeiten würde ich etwas zurück bekomme egal was. Wobei ich gerade an etwas ähnlihem arbeite und es mit
Code:
bool of = Directory.Exists(node);
getestet habe und es ging in meinem Projekt einwandfrei.
Mfg
Oli

p.s Tipp hätte ich noch, die ganzen Abfragen etc in dem Button sind absolut unübersichtlich, so habe ich es auch früher gemacht, da kann man aber meist schlecht etwas finden. Auslagern in eine Arbeitschicht.
 
Zuletzt bearbeitet:
Hallo
Es heißt vermutlich die Schreibweise Deines Pfad´s ist falsch.
Beispiel richtig:
Code:
node.Tag = @"\\"+ System.Environment.GetEnvironmentVariable("CLIENTNAME")+@"\" + obj["Name"].ToString();
falsch
Code:
node.Tag = @"\"+ System.Environment.GetEnvironmentVariable("CLIENTNAME")+@"\" + obj["Name"].ToString();
es fehlt also vermutlich irgendwo ein backslash oder zu viele oder zuwenig
MfG
Oli
 
Zuletzt bearbeitet:
Hallo danke für deine Antwort.

Ich habe ein kleines Problem.
und zwar der erste Eintrag im meinem test.txt wird gibt immer True zurück.
Aber der restliche Eintrag in meinen test.txt wird immer als Illegales Pfad angegeben.

Woran liegt das ?
 
Hallo
Ich verstehe die Frage nicht wirklich! Ist das noch das Problem mit dem Listbox Item ? Also dem?
Code:
bool of = Directory.Exist(listbox1.SelectedItem.toString());
Oder etwas anderes ?
Und Bitte lasse dir mal nur dein SelectedItem ausgeben. Um zu schauen ob der Pfad ok ist!
MfG
Oli
 
Den ersten Eintrag in meiner Listbox funktioniert. Also er überprüft ob es vorhanden ist.
Beim zweiten Eintrag in der Listbox kommt immer die Meldung: "Illegaler Verzeichnis".

Das ist mein Problem momentant
 
Hallo
naja dann stimmt was mit dem 2 Eintrag nicht.
zeig doch mal hier die Meldung und mache aus dem selecteditem der Listbox einen String und schau ihn dir an ob der Richtig ist. Meine Vermutung ist das der Index irgendwie nicht richtig ist.
MfG
Oli


wie liest du denn die Listbox aus für den 2 Eintrag wäre noch gut zu wissen
geht es um die Funktion?
Code:
   private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string listboxitem = Convert.ToString(listBox1.SelectedItem);
            MessageBox.Show(listboxitem);
 
 
        }
wenn ja nutze mal die Möglichkeiten der Objekte in C#
Code:
 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
 ListBoxItem item = sender as ListBoxItem;
}
So kannst du nun mit dem Item und allen Properties oder Methode weiter machen. Du kannst auch das Event nutzen in einer ähnlichen Art und Weise
Das Beispiel nutze ich aber in einer ListView was aber vom Prinzip keine Geige spielt.
Code:
 private void listView2_Click(object sender, RoutedEventArgs e)
        {
             try
			 {
                GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader;
vielleicht hilft es Dir

Hallo
so habe mal eben 2 Funktionen geschrieben
Code:
   public void hallo()
        {
            string pfad = "C:\\temp";
            DirectoryInfo infoFiles = new DirectoryInfo(pfad);
            foreach(FileInfo file in infoFiles.GetFiles())
            {
                listBox1.Items.Add(file.ToString());
            }
            
        }
        
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string test = listBox1.SelectedItem.ToString();
            MessageBox.Show(test);

        }
So bekommst Du alle Items aus der ListBox . Ich habe ein StatischesVerzeichniss gewählt . Dort waren 3 Dateien drin . Habe Sie mir ausgeben lassen bei Item Change. Ich hatte nur .txt im Ordner da ich keinen Filter benutzt habe. Vielleicht hilft es Dir. Ich weiß ja nicht was Du weiter machen willst.
MfG
Oli
 
Zuletzt bearbeitet von einem Moderator:
Hallo also das mit dem Ausgeben der selektierten listboxitem habe ich auch gemacht. Die Messagebox gibt es immer den richtigen pfad an.

Ich poste hier mal den ganzen Quellcode:
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void button1_Click(object sender, EventArgs e)
        {

            folderBrowserDialog1.ShowNewFolderButton = true;
            folderBrowserDialog1.ShowDialog();
            String pfad = folderBrowserDialog1.SelectedPath;

            String verzeichnis = "D:\\test.txt";
            StreamWriter sw = new StreamWriter(verzeichnis, true);
            string zwischenspeicher = pfad + "\\" + ";";
            MessageBox.Show(zwischenspeicher);
            sw.WriteLine(zwischenspeicher);
            sw.Close();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            String pfad = "D:\\test.txt";
            StreamReader sr = new StreamReader(pfad);


            string Line = sr.ReadToEnd();
            string[] split = Line.Split(new Char[] { ';' });
            foreach (string s in split)
            {
                if (s.Trim() != "")
                    this.listBox1.Items.Add(s);
            }
            sr.Close();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListBoxItem item = sender as ListBoxItem;
            string listboxitem = listBox1.SelectedItem.ToString();
            MessageBox.Show(listboxitem);

            

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(Convert.ToString(listBox1.SelectedItem));


            int jahrvon = Int32.Parse(textBox1.Text);
            int monatvon = Int32.Parse(textBox2.Text);
            int tagvon = Int32.Parse(textBox3.Text);

            int jahrbis = Int32.Parse(textBox6.Text);
            int monatbis = Int32.Parse(textBox5.Text);
            int tagbis = Int32.Parse(textBox4.Text);

            System.DateTime date2 = new System.DateTime(jahrbis, monatbis, tagbis);

            System.DateTime date3 = new System.DateTime(jahrvon, monatvon, tagvon);

            // diff2 gets 55 days 4 hours and 20 minutes.
            System.TimeSpan diff2 = date2 - date3;
            // MessageBox.Show(Convert.ToString(date2));
            // MessageBox.Show(Convert.ToString(date3));
            // MessageBox.Show(Convert.ToString(diff2.Days));

            //int differenztag = diff2.Days;
            //bool OrdnerExisitiert = System.IO.Directory.Exists(Convert.ToString(listBox1.SelectedItem));
            //MessageBox.Show(Convert.ToString(OrdnerExisitiert));
            //String lokal = "\\Lokal\\";

            try
            {
                DirectoryInfo infoFiles = new DirectoryInfo((string)listBox1.SelectedItem);
                bool of = infoFiles.Exists;
                bool af = Directory.Exists((string)listBox1.SelectedItem);
                MessageBox.Show(Convert.ToString(of), "Pfad vorhanden", MessageBoxButtons.OK, MessageBoxIcon.Information);
                MessageBox.Show(Convert.ToString(af));
            }
            catch (Exception t)
            {
                MessageBox.Show(Convert.ToString(t));
            }
            
            //Directory.CreateDirectory(string dirName);
            // String pfade = Path.Combine(selektiertepfad,lokal);
            //string selektiertepfad = "D:" + Path.DirectorySeparatorChar + Convert.ToString(listBox1.SelectedItem);//System.IO.Path.Combine("D:", Convert.ToString(listBox1.SelectedItem));
            

            /**MessageBox.Show(selektiertepfad);
            if (Directory.Exists(@selektiertepfad))
            {

                MessageBox.Show(" Ordner vorhanden, Server", "Ordner Vorhanden im Server", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show(" Ordner nicht vorhanden,Server!", "Ordner Vorhanden nicht vorhanden im Server!", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            }

          /**  for (int i = tagvon; i <= tagbis; i++)
            {

                //MessageBox.Show(Convert.ToString(i));
                string filedate = jahrbis + "-" + monatbis + "-" + i;
                // MessageBox.Show(filedate,"Datum",MessageBoxButtons.OK,MessageBoxIcon.Information);

                //MessageBox.Show(liste);




                
               /** if (Directory.Exists(@serverpfad))
                {

                    MessageBox.Show(filedate + " Ordner vorhanden, Server", "Ordner Vorhanden im Server", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(filedate + " Ordner nicht vorhanden,Server!", "Ordner Vorhanden nicht vorhanden im Server!", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
                }

               

                if (Directory.Exists(lokalpfad))
                {
                    MessageBox.Show(filedate + " Ordner vorhanden, Lokal", "Ordner Vorhanden im Lokal", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(filedate + " Ordner nicht vorhanden,Lokal!", "Ordner Vorhanden nicht vorhanden im Lokal!", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
                }
                
                */

            }
        }


    
    }
und hier mein Inhalt von meiner test.txt datei:
D:\debian\;
D:\test2\;


Die beiden pfade existieren zu 100%.

Und wie erwähnt der erste Pfad gibt immer true zurück weil der Pfad auch existiert.
Beim zweiten gibt es immer false zurück bzw. Illegaler Verzeichnis.
 
Zuletzt bearbeitet von einem Moderator:
Zurück