Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Ερώτηση σχετικά με την GetDirectory

Îåêßíçóå áðü ôï ìÝëïò epp1123. Τελευταία δημοσίευση από το μέλος epp1123 στις 10-07-2009, 16:24. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-07-2009, 14:18 52352

    Ερώτηση σχετικά με την GetDirectory

    Έχω μία σελίδα, η οποία θα φορτώνει φωτογραφίες, ανάλογα με κάποιο id που βρίσκεται στο QueryString, όπου αυτά τα ids είναι και ονόματα φακέλων. Οι φάκελοι αυτοί είναι μέσα στον φάκελο Shows. Πχ

    Shows
    |
    |------> 1 (Όνομα φακέλου όπου στο queryString θα είναι ShowID=1)
    |------> 2 (Ομοίως)

    Χρησιμοποιώ λοιπόν τον εξής κώδικα :

            Function PhotosDirectoriesInfo() As String()
                'Παίρνουμε τις πληροφορίες για τα αρχεία
                Dim result = Directory.GetDirectories(Page.MapPath("~/CommonFiles/Shows"))
                Return result
            End Function

    Και είμαι τώρα σε μία φάση όπου θέλω να πάρω τον αριθμό των αρχείων που έχει πχ ο φάκελος 1. Θέλω να βρω μία μέθοδο η οποία να λειτουργεί ως εξής:

    Me.PhotosDirectoriesInfo.MethodName("1").Length , όπου 1 το όνομα του φακέλου

    ΥΓ. Με τον Chrome δε μπαίνει το Code Snipset.
  •  10-07-2009, 14:23 52354 σε απάντηση της 52352

    Απ: Ερώτηση σχετικά με την GetDirectory

    Βασικά η από πάνω GetDirectories γυρίζει string. Η συνάρτηση που θέλω μάλλον έτσι είναι προτιμότερη. Η έτσι είναι παρακάτω

            Function PhotosDirectoriesInfo() As DirectoryInfo()
                Dim DirInfo As New DirectoryInfo(Page.MapPath("~/CommonFiles/Shows"))
                Dim result = DirInfo.GetDirectories()
                Return result
            End Function
  •  10-07-2009, 14:33 52356 σε απάντηση της 52354

    Απ: Ερώτηση σχετικά με την GetDirectory

    Αν κατάλαβα καλά, θέλεις να βρεις πόσα αρχεία βρίσκονται σε ένα συγκεκριμένο φάκελο. Αυτό μπορεί να στο δώσει η Directory.GetFiles ή η DirectoryInfo.GetFiles, ανάλογα με το ποιές κλάσεις χρησιμοποιείς. Η κάθε μία θα σου επιστρέψει μία λίστα με τα αρχεία, είτε ως πίνακα strings (η Directory.GetFiles) είτε ως πίνακα από FileSystemInfo (η DirectoryInfo.GetFiles). Ποιά θα χρησιμοποιήσεις εξαρτάται από το τί θέλεις να κάνεις. Αν θέλεις απλά να βρεις τον αριθμό ή τα ονόματα, η Directory.GetFiles αρκεί. Αν θέλεις να διαβάσεις επιπλέον πληροφορίες θα πρέπει να χρησιμοποιήσεις την DirectoryInfo.GetFiles.

    Να υπενθυμίσω ότι οι ερωτήσεις πρέπει να γίνονται στα κατάλληλα forums. Όχι μόνο θα πάρουν γρηγορότερα απάντηση, αλλά μπορεί και εμείς οι ίδιοι να βρούμε ευκολότερα την απάντηση αν σκεφτούμε σε ποιό forum ταιριάζει η ερώτηση. Προφανώς, η παραπάνω ερώτηση δεν έχει απολύτως τίποτε να κάνει με web development, άρα δεν ταίριαζε στο Web Forms. Από τη στιγμή που έχει να κάνει με core θέμα όπως η διαχείριση αρχείων, η ερώτηση ταιριάζει στο .NET Framework και την απάντηση θα τη βρεις ψάχνοντας το αντίστοιχο documentation.

    Βέβαια στην παραπάνω περίπτωση θα μπορούσες απλά να κοιτάξεις λίγο παραπάνω το documentation της Directory - εκτός και αν δεν κατάλαβα την ερώτηση.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  10-07-2009, 14:41 52358 σε απάντηση της 52354

    Απ: Ερώτηση σχετικά με την GetDirectory

    Η Directory.GetFiles(string searchpattern) σου γυρνάει μια array από FileInfo objects.Αν βάλεις ως search pattern "*.*" παίρνεις όλα τα αρχεία.Ως Array μπορείς να ζητήσεις τον αριθμό των στοιχείων της με την GetLength.
  •  10-07-2009, 14:50 52361 σε απάντηση της 52356

    Απ: Ερώτηση σχετικά με την GetDirectory

    Βασικά σκεφτόμουν να το ανοίξω εδώ το thread, αλλά στη τελική τη πατάτα την έκανα Stick out tongue

    Τη GetFiles τη ξέρω, αλλά μάλλον δεν ήμουν διευκρινιστικός αρκετά. Θέλω τους υποφακέλους που βρίσκονται μέσα στον φάκελο Shows. Εκεί μέσα έχει φακέλους με ονόματα, 1, 2, 3 , 116 κτλ τα οποία ουσιαστικά είναι ids. Εκεί μέσα, κάθε φάκελος έχει τρεις φακέλους, τους Photos, PhotosBooks και Thumbs. Εχώ θέλω να χρησιμοποιήσω τους δύο φακέλους μόνο, τους Photos και Thumbs. Από κει και πέρα θέλω από αυτούς τους δύο φακέλους να παίρνω τον αριθμό των αρχείων, αλλά και το path των αρχείων. Ουφ το είπα.
  •  10-07-2009, 15:04 52367 σε απάντηση της 52361

    Απ: Ερώτηση σχετικά με την GetDirectory

    Τότε πάρε το root folder σου και χρησιμοποίησε την GetFileSystemInfo κάπως έτσι:

    Directory dir=new Directory(Page.MapPath("~/CommonFiles/Shows"));
    FileSystemInfo[] fi=dir.GetFileSystemInfo("*\thumbs*");
     
    Και χρησιμοποίησε το Attributes property για να διαχωρίσεις τα αρχεία από τους φακέλους.
  •  10-07-2009, 15:39 52369 σε απάντηση της 52367

    Απ: Ερώτηση σχετικά με την GetDirectory

    Δεν υπάρχει λόγος να ψάχνει κανείς στα attributes όταν υπάρχει η GetDirectories και στις δύο κλάσεις, και την Directory και την DirectoryInfo. Μάλιστα και οι δύο κλάσεις έχουν παραλλαγές της μεθόδου η οποία κάνει αναζήτηση και σε subdirectories.

     Ομολογώ ότι ακόμα δεν έχω καταλάβει ποιό είναι το θέμα. Αν ξέρω τα ονόματα όλων των ενδιάμεσων φακέλων, ή αν μπορώ να τα βρώ μέσω της GetDirectories, άνετα μπορώ να φτιάξω ένα string με όλο το path και να κάνω GetFiles είτε στο Photos είτε στο Thumbs. 

    Για παράδειγμα, ο παρακάτω κώδικας θα σου επιστρέψει αμέσως τα αποτελέσματα που θέλεις

    Dim showFolders as String()=Directory.GetDirectories("e:\shows")
    For each showFolder as String in showFolders
    Dim thumbs as String()=Directory.GetFiles(showFolder + "\Thumbs")
    Console.WriteLine("{0} Thumbs {1}",showFolder,thumbs.Length)
    Dim photos as String()=Directory.GetFiles(showFolder + "\Photos")
    Console.WriteLine("{0} Photos {1}",showFolder,photos.Length)
    Νext

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  10-07-2009, 16:24 52371 σε απάντηση της 52369

    Απ: Ερώτηση σχετικά με την GetDirectory

    Εντάξει ευχαριστώ για όλα. Το λάθος το είχα κάνει ως προς την αρχική σκέψη, αλλά με ξεμπλοκάρατε. Ευχαριστώ και πάλι
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems