Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t给出C中函数的正确路径#_C#_Excel_Pdf - Fatal编程技术网

C# Can';t给出C中函数的正确路径#

C# Can';t给出C中函数的正确路径#,c#,excel,pdf,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"); } for

我正在尝试使用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");
}
这是可行的,但当我写这篇文章时:

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

file.Fullname
已包含完整路径。因此,在开头省略“d:。

返回包括扩展名在内的全名。因此,在第一个实例中,您试图用错误的扩展名编写Excel文件。虽然这可以在Unix系统上运行,但Windows希望扩展是正确的。通过硬编码“.xls”,您将文件名更改为:

@“d:\Path\File.pdf.xls”

这是正确的,但令人困惑

您需要从文件中删除“.pdf”,并将其替换为“.xls”。最简单的方法可能是:

string filename = file.FullName.Replace(".pdf", ".xls");
f.ToExcel(filename);
由于
Fullname
已包含前导驱动器号


这会将所有出现的“.pdf”更改为“.xls”,因此如果该字符串出现在路径中的其他位置,它也会在路径中更改。

我尝试了
f.ToExcel(@“+file.FullName);
f.ToExcel(file.FullName);
但它们都没有生成xls文件。在您的代码
文件中,是一个.pdf文件,但您硬编码了一个“.xls”“文件…”您缺少
\'
'。
d:
之后,您的路径应该是
f.ToExcel(@“d:\”+file.FullName+“.xls”)这是调试器非常有用的地方。在
file.FullName
行上弹出一个断点,查看实际值,