2013-02-18 3 views
-1

Я хочу, чтобы имя файла находилось в указанной папке.Как получить имя файла из указанной папки?

i.e есть файл, хранящийся под двумя папками First\Second\test.txt Я хочу иметь путь к родительскому каталогу файла First\Second\ в моей программе. Теперь я хочу получить имя файла, находящегося в каталоге «Second», используя код.

Пожалуйста, помогите мне.

+0

Что вам нужно? вы хотите получить все файлы из 'second', или вы хотите получить имя файла из пути, ваш вопрос не совсем ясен. – Habib

+0

Во второй папке находится только один файл. Это имя файла, которое я хочу получить. @Habib –

ответ

1

Ниже будет делать трюк, если вы хотите один файл.

using System.IO; 
using System.Linq 

var file = Directory.GetFiles("C:\\First\\Second\\").FirstOrDefault(); 

if (file != null) 
{ 
    var fileName = Path.GetFileName(file); 
} 

Ниже будет вам все имена файлов:

using System.IO; 
using System.Linq 

var files = Directory.GetFiles("C:\\First\\Second\\"); 
var fileNames = files.Select(f => Path.GetFileName(f)); 
1

Вы можете использовать метод Directory.GetFiles, чтобы получить файлы в каталоге с полным путем, а затем использовать эти файлы для извлечения файлов.

string [] fileEntries = Directory.GetFiles(targetDirectory); 

Чтобы получить имена файлов без пути, который вы можете использовать Linq

var fileNames System.IO.Directory.GetFiles(targetDirectory).Select(c => Path.GetFileName(c)).ToList(); 
+0

Это позволит получить полный путь к файлу. Не имена файлов. Мой ответ ниже получит только имена. Вам нужен вызов Path.GetFileName. –

+0

Что это значит? – Adil

+1

Я не смотрел на ваш ответ дорогой, только что понял из вашего комментария, что мой ответ не получает имен файлов. – Adil

0

Здесь вы идете:

1)

string sourceDir = @"C:\First\Second\"; 
string[] fileEntries = Directory.GetFiles(sourceDir); 

foreach(string fileName in fileEntries) 
{ 
    // do something with fileName 
    Console.WriteLine(fileName); 
} 

2)

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Location); 
foreach (System.IO.FileInfo f in dir.GetFiles("*.*")) 
{ 
    Console.WriteLine(f.Name); 
} 
Смежные вопросы