2014-02-17 3 views

ответ

4

Проблема: Вы обеспечиваете Путь File

Решение: Вам нужно указать путь Directory, чтобы получить все файлы в данной Directory на основе вашего шаблона поиска ,

Из MSDN: Directory.GetFiles()

Возвращает имена файлов (в том числе их пути), которые соответствуют заданному шаблону поиска в указанном каталоге.

Попробуйте это:

string directoryName = Path.GetDirectoryName(e.FullPath); 
foreach(String filename in Directory.GetFiles(directoryName,"*.eps")) 
{ 
    //your code here 
} 
+0

Работал как очарование! Благодаря! –

+0

Добро пожаловать :) Я рад помочь вам. –

2

Вы хотите каталог, а не имя файла.

В настоящий момент значение e.FullPath составляет "C:\\DigitalAssets\\LP_10698.eps". Он должен быть "C:\\DigitalAssets".

string[] fileNames = Directory.GetFiles(string path) требуется каталог, вы предоставляете ему каталог + имя файла.

MSDN:

Возвращает имена файлов (в том числе их путей), которые соответствуют указанному шаблону поиска в указанном каталоге.

foreach(string filename in Directory.GetFiles(e.FullPath, "*.eps")) 
{ 
    // For this to work, e.FullPath needs to be a directory, not a file. 
} 

Вы можете использовать Path.GetDirectoryName():

foreach(string filename in Directory.GetFiles(Path.GetDirectoryName(e.FullPath), "*.eps")) 
{ 
    // Path.GetDirectoryName gets the path as you need 
} 

Вы можете создать метод:

public string GetFilesInSameFolderAs(string filename) 
{   
    return Directory.GetFiles(Path.GetDirectoryName(filename), Path.GetExtension(filename)); 
} 

foreach(string filename in GetFilesInSameFolderAs(e.FullPath)) 
{ 
    // do something with files. 
} 
+1

Спасибо за ответ. Это также правильно, но потому, что @sudhakar ответил первым, поэтому я просто поддержал это. –

0

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

Вы можете попробовать

Directory.GetFiles(System.IO.Path.GetDirectoryName(e.FullPath),"*.eps") 
0

e.FullPath кажется файл, а не каталог. Если вы хотите перечислить файлы * .eps, первый аргумент GetFiles должен быть путь к каталогу: @"C:\DigitalAssets"

0

первый аргумент GetFiles должен быть только «C: \ DigitalAssets» e.FullPath включают имя файла в нем ,

Смежные вопросы