Θωμά,
στον αρχικό σου κώδικα λες:
if (!Directory.Exists(path1) == true)
Ας δούμε λίγο τι επιστρεφει αυτο σε κάθε περίπτωση.
Καταρχήν, το Directory.Exists(path1) επιστρέφει:
- True αν το path1 υπάρχει
- False αν το path1 δεν υπάρχει.
Το !Directory.Exists(path1) επιστρέφει ανάποδα:
- False αν το path1 υπάρχει
- True αν το path1 δεν υπάρχει.
Σημείωση, οτι το "!" μπροστά δεν αντιστρέφει ΟΛΗ τη συνθήκη, αλλα μόνο το Directory.Exists (path1)
Αρα μπορούμε να αντικαταστήσουμε ολόκληρη τη "φραση" "!Directory.Exists(path1) με True ή False σύμφωνα με το παραπάνω.
Ετσι, έχεις τις εξής περιπτώσεις:
Στην περίπτωση που το path1 υπάρχει το IF σου γίνεται:
If (false==true) που φυσικά κάνει false
Στην περίπτωση που το path1 ΔΕΝ υπάρχει, το IF σου γίνεται:
If (true==true) που φυσικά κάνει true.
Στον παρακάτω κώδικα επιστρέφεις true αν είναι true η συνθήκη, false αν είναι false. Ολο αυτό φυσικά είναι ένας τετραπλός πλεονασμός, (το if, η αντιστροφή, η σύγκριση και το ίδιο το function) αλλά παρ'όλα αυτά το αποτέλεσμα που παίρνεις είναι πάντα:
TRUE αν ΔΕΝ υπάρχει το path1
FALSE αν ΥΠΑΡΧΕΙ to path1
Δηλαδή τα ανάποδα από ο,τι θα ήθελες.
Τωρα γιατί σου βγάζει πάντα true; Η μόνη εξήγηση που μπορώ να δώσω είναι οτι δεν γράφεις σωστά το path1 (εννοώ την τιμή που εκχωρείς στη μεταβλητή path1) με αποτέλεσμα ΠΟΤΕ να μην βρίσκει οτι υπάρχει και σύμφωνα με τα παραπάνω να σου γυρνάει πάντα true.
Σωτήρης Φιλιππίδης
DotSee Web Services