Aracılığıyla paylaş


Nasıl Yapılır: Belirli bir Öznitelik veya Ada Sahip Dosyaları Sorgulama

Bu örnek, belirtilen dizin ağacı içinde belirtilen dosya adı uzantısını (örneğin, ".txt") tüm dosyaları bulmak nasıl gösterir.Ayrıca, ya da en yeni veya en eski dosya oluşturma zamana dayalı ağacında dönmek nasıl gösterir.

Örnek

Module FindFileByExtension
    Sub Main()

        ' Change the drive\path if necessary 
        Dim root As String = "C:\Program Files\Microsoft Visual Studio 9.0" 

        'Take a snapshot of the folder contents 
        Dim dir As New System.IO.DirectoryInfo(root)

        Dim fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories)

        ' This query will produce the full path for all .txt files 
        ' under the specified folder including subfolders. 
        ' It orders the list according to the file name. 
        Dim fileQuery = From file In fileList _
                        Where file.Extension = ".txt" _
                        Order By file.Name _
                        Select file

        For Each file In fileQuery
            Console.WriteLine(file.FullName)
        Next 

        ' Create and execute a new query by using 
        ' the previous query as a starting point. 
        ' fileQuery is not executed again until the 
        ' call to Last 
        Dim fileQuery2 = From file In fileQuery _
                         Order By file.CreationTime _
                         Select file.Name, file.CreationTime

        ' Execute the query 
        Dim newestFile = fileQuery2.Last

        Console.WriteLine("\r\nThe newest .txt file is {0}. Creation time: {1}", _
                newestFile.Name, newestFile.CreationTime)

        ' Keep the console window open in debug mode
        Console.WriteLine("Press any key to exit.")
        Console.ReadKey()

    End Sub 
End Module
class FindFileByExtension
{
    // This query will produce the full path for all .txt files 
    // under the specified folder including subfolders. 
    // It orders the list according to the file name. 
    static void Main()
    {
        string startFolder = @"c:\program files\Microsoft Visual Studio 9.0\";

        // Take a snapshot of the file system.
        System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);

        // This method assumes that the application has discovery permissions 
        // for all folders under the specified path.
        IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories);

        //Create the query
        IEnumerable<System.IO.FileInfo> fileQuery =
            from file in fileList
            where file.Extension == ".txt" 
            orderby file.Name
            select file;

        //Execute the query. This might write out a lot of files! 
        foreach (System.IO.FileInfo fi in fileQuery)
        {
            Console.WriteLine(fi.FullName);
        }

        // Create and execute a new query by using the previous  
        // query as a starting point. fileQuery is not  
        // executed again until the call to Last() 
        var newestFile =
            (from file in fileQuery
             orderby file.CreationTime
             select new { file.FullName, file.CreationTime })
            .Last();

        Console.WriteLine("\r\nThe newest .txt file is {0}. Creation time: {1}",
            newestFile.FullName, newestFile.CreationTime);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit");
        Console.ReadKey();
    }
}

Kod Derleniyor

  • Oluşturma bir Visual Studio hedefleyen proje .NET Framework sürüm 3.5.Varsayılan olarak, proje başvuru System.Core.dll sahiptir ve bir using yönergesi (C#) veya Imports deyimi (Visual Basic) System.Linq ad alanı.C# projeleri, ekleme bir using yönergesi System.IO ad alanı.

  • Projenize bu kodu kopyalayın.

  • Derlemek ve program çalıştırmak için F5 tuşuna basın.

  • Konsol penceresine çıkmak için herhangi bir tuşa basın.

Güçlü Programlama

Belge ve dosyalarınız birden çok türde içeriği üzerinde yoğun sorgu işlemleri için kullanmayı Windows Desktop Search altyapısı.

Ayrıca bkz.

Kavramlar

Nesnelere LINQ

LINQ ve Dosya Dizinleri