循环浏览目录中的每个PDF文件

时间:2019-12-13 20:59:21

标签: c# foreach

我需要将每个文件上传到我们的文件管理系统。我正在尝试创建一个循环来访问每个PDF文件,然后执行上载。我最终陷入了混乱。有任何提示如何正确执行吗?

这是我的烂摊子

        string filepath = Path.GetFullPath(@"C:\temp\");

        DirectoryInfo d = new DirectoryInfo(filepath);

        var pdfPath = @"C:\temp\";
        var pdfFiles = new DirectoryInfo("C:\\temp\\").GetFiles("*.pdf");
        var PdfFilename = pdfFiles[0].Name;

        var destinationFile = pdfPath + PdfFilename;

        foreach (var file in d.GetFiles("*.pdf"))

         { 
            // Rest of the code goes here 
         }

编辑:

通过此代码:

DirectoryInfo d = new DirectoryInfo(@"c:\temp");
foreach (var file in d.GetFiles("*.pdf"))
{
    // Rest of the code goes here 
    Console.WriteLine(file.FullName);
}

我正在获取每个文件的完整路径,例如C:\temp\Power EMC Brochure.pdf。以后如何在循环中获取每个文件的名称?我的意思是我需要从完整路径中剪切每个文件的名称,例如Power EMC Brochure作为要为我们的文件管理系统指定的文件名。

是这样吗?

DirectoryInfo d = new DirectoryInfo(@"c:\temp");
foreach (var file in d.GetFiles("*.pdf"))
{
    // Rest of the code goes here 
    Console.WriteLine(file.FullName);


    file.Name;
}

1 个答案:

答案 0 :(得分:0)

简单

var newQuery = from source in SourceDrawingLayers
    join target in TargetDrawingLayers
    on target.name
    where target.OnOff != source.OnOff
    select target;

DirectoryInfo.GetFiles返回一组FileInfo对象,这些对象的FullName是带有路径的完整文件名。因此,您无需再次将源路径与文件名合并即可形成执行上传所需的字符串。

如果您需要有关文件的更多详细信息,只需查看FileInfo class提供的属性,您还可以在其中找到

DirectoryInfo d = new DirectoryInfo(@"c:\temp");
foreach (var file in d.GetFiles("*.pdf"))
{
    // Rest of the code goes here 
    Console.WriteLine(file.FullName);
}