2011-08-21 17 views

cevap

122

Tam yolundan

private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf") 
            .Select(Path.GetFileName) 
            .ToArray(); 

DÜZENLEMEYİ dosya adını almak için Path.GetFileName kullanabilirsiniz: en az .NET 3.5 gerektirir böylece çözüm yukarıda, LINQ kullanır. İşte önceki sürümlerinde çalışan bir çözüm:

private string[] pdfFiles = GetFileNames("C:\\Documents", *.pdf"); 

private static string[] GetFileNames(string path, string filter) 
{ 
    string[] files = Directory.GetFiles(path, filter); 
    for(int i = 0; i < files.Length; i++) 
     files[i] = Path.GetFileName(files[i]); 
    return files; 
} 
+0

Merhaba Thomas, ben bu gibi bir hata alıyorum \t 'System.Array' için bir tanım içermiyor 'Select' ve hiçbir uzantı yöntemi yok 'Select' 'System.Array' türünde bir ilk argümanı kabul ederek bulunabilir (Bir yönerge veya bir montaj başvurusu eksik misiniz?) \t Değerlendirmem gereken başka bir şey var mı? –

+0

Dosya başlangıcında System.Linq; 'kullanarak ve zaten yok ise' System.Core 'derlemesine bir başvuru ekleyin. .NET 3.5 veya daha yüksek bir süreye ihtiyaç duyuyorsa, –

+0

'a ihtiyacınız varsa .NET 2.0 için bir çözüm göndereceğim. –

6

Sadece dosyanın adını almak için yöntem Path.GetFileName(yourFileName);(MSDN) kullanabilirsiniz.

+0

Soru, tek dizili değer işleme değil, öğelerin bir koleksiyonudur. – Tigran

5

DirectoryInfo ve FileInfo sınıflarını kullanabilirsiniz.

//GetFiles on DirectoryInfo returns a FileInfo object. 
var pdfFiles = new DirectoryInfo("C:\\Documents").GetFiles("*.pdf"); 

//FileInfo has a Name property that only contains the filename part. 
var firstPdfFilename = pdfFiles[0].Name; 
0

pek çok yolu :) vardır

1 Yolu:

string[] folders = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly); 
string jsonString = JsonConvert.SerializeObject(folders); 

2 Yönlü:

string[] folders = new DirectoryInfo(yourPath).GetDirectories().Select(d => d.Name).ToArray(); 

3 Yollu:

string[] folders = 
    new DirectoryInfo(yourPath).GetDirectories().Select(delegate(DirectoryInfo di) 
    { 
     return di.Name; 
    }).ToArray(); 
0
using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace GetNameOfFiles 
{ 
    public class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] fileArray = Directory.GetFiles(@"YOUR PATH"); 
      for (int i = 0; i < fileArray.Length; i++) 
      { 

       Console.WriteLine(fileArray[i]); 
      } 
      Console.ReadLine(); 
     } 
    } 
} 
İlgili konular