2016-06-04 3 views
-1

Я пытаюсь преобразовать PDF-файлы в файлы Excel с помощью C#. Когда я пишу это:Не удается указать правильный путь к функции в C#

foreach (var file in d.GetFiles("*.pdf")) 
{ 
    var f = new SautinSoft.PdfFocus { Serial = "xxxxxxxxxxxxx" }; 

    f.OpenPdf(file.OpenRead()); 

    if (f.PageCount > 0) 
     f.ToExcel(@"d:\File.xls"); 
} 

Это работает, но когда я пишу это:

foreach (var file in d.GetFiles("*.pdf")) 
{ 
    var f = new SautinSoft.PdfFocus { Serial = "xxxxxxxxxxxxx" }; 

    f.OpenPdf(file.OpenRead()); 

    if (f.PageCount > 0) 
     f.ToExcel(@"d:" + file.FullName + "xls"); 
} 

Это не работает. Как я могу изменить эту строку, чтобы она работала?

f.ToExcel(@"d:" + file.FullName + ".xls"); 
+0

Вам не хватает '' '' '' и ''. '' После 'd:' вы должны быть 'f.ToExcel (@" d: \ "+ file.FullName +" .xls ");' –

+0

Здесь очень полезен отладчик. Удалите точку останова на строке 'file.FullName' и посмотрите, что это за значение, – Tdorno

ответ

1

file.Fullname уже содержит полный путь. Таким образом, опустить «d:» в начале.

+0

Я пробовал' f.ToExcel (@ "+ file.FullName);' и 'f.ToExcel (file.FullName) ;, но none из них были созданы файлы xls. – jason

+0

в вашем файле '' 'файл .PDF, но вы жестко закодировали файл .XLS ...? –

+0

Когда я добавил .xls, это сработало, спасибо. – jason

1

FullName возвращает полное имя включая расширение. Итак, в первом случае вы пытаетесь написать файл Excel с неправильным расширением. Хотя это будет работать на Unix-системах, Windows нравится, что расширение является правильным. По жестко прописывать ".xls" вы изменили имя файла:

@ "D: \ Путь \ File.pdf.xls"

, который является правильным, но сбивает с толку.

Вам необходимо снять «.pdf» с файла и заменить его «.xls». Самый простой способ сделать это, вероятно:

string filename = file.FullName.Replace(".pdf", ".xls"); 
f.ToExcel(filename); 

Как Fullname уже содержит ведущую букву.

Это изменит все вхождения «.pdf» в «.xls», так что если эта строка появится в другом месте пути, она также будет изменена.

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