无法在C#中为函数提供正确的路径

时间:2016-06-04 11:23:41

标签: c# excel pdf

我尝试使用C#将PDF文件转换为Excel文件。 当我这样写:

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");

2 个答案:

答案 0 :(得分:1)

M = [ 1 2 6 1 6 5 2 3 7 2 7 6 3 4 8 3 8 7 5 6 10 5 10 9 6 7 11 6 11 10 7 8 12 7 12 11]; % Check(1,2) - Sees is any row contains *both* 1 and 2 tf = any(any(M == 1, 2) & any(M == 2, 2)); % Check(1,3) tf = any(any(M == 1, 2) & any(M == 3, 2)); % And if you want to find the matching row row = find(any(M == 1, 2) & any(M == 2, 2)); 已包含完整路径。因此省略" d:"在开始。

答案 1 :(得分: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”,因此如果该字符串出现在路径的其他位置,它也会在那里更改。