我如何从源中获取.pdf文件并将其复制到目的地的每日文件夹下?

时间:2019-05-29 18:31:31

标签: c# .net vb.net file copy

我如何从源中获取.pdf文件并将其复制到目的地的每日文件夹下?有多个{项目文件夹},每个项目文件夹都需要复制到其相应的目标位置。

这些是我的文件夹目录:

来源示例:根:{project folder} /。pdf,{project folder1} /。pdf,{project folder2} /。pdf……。

目标示例:根目录:{项目文件夹} /日常文件夹/.pdf,{项目文件夹1} /日常文件夹/.pdf,{项目文件夹2} /日常文件夹/.pdf…..

 static void Main(string[] args)
        {
            CopyFolder(@"C:\Desktop\Source\pdf-reports", @"C:\Desktop\Destination\Parks");
            Console.ReadLine();
    }

    static public void CopyFolder(string sourceFolder, string destFolder)
        {
        if (!Directory.Exists(destFolder))
                Directory.CreateDirectory(destFolder);
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);
                string dest = Path.Combine(destFolder, name);
                File.Copy(file, dest);
            }
            string[] folders = Directory.GetDirectories(sourceFolder, "l*", SearchOption.TopDirectoryOnly);


        foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);
                string dest = Path.Combine(destFolder, name);
                CopyFolder(folder, dest);
            }

2 个答案:

答案 0 :(得分:0)

好的,就是这样。

Imports System.IO


'get the list of all pdf files from the source folder'
Dim FileList() As String = Directory.GetFiles("Replace for Source Folder", "*.pdf")
Dim FileName As String

'Set the root of the destination folder and create a new folder using as name the current date'
Dim DestPath As String = "Replace for Destination Folder" & DateTime.Now.ToString("yyyy-MM-dd")
Dim DestFolder As DirectoryInfo = Directory.CreateDirectory(DestPath)

'go through each of the files and move those one by one'
For F = 0 To FileList.Length - 1
    FileName = Path.GetFileName(FileList(F))
    File.Move(FileList(F), DestPath & "\" & FileName.toString)
Next

`

答案 1 :(得分:0)

这是答案。

        static void Main(string[] args)
        {
            CopyFolder(@"D:\Origin", @"D:\Test");
            Console.ReadLine();
        }

        private static void CopyFolder(string source, string destination)
        {
            if (!Directory.Exists(destination))
                Directory.CreateDirectory(destination);

            var files = new DirectoryInfo(source).GetFiles("*.pdf");
            string dailyFolder = "DailyFolder";
            string destinationDailyFolder = Path.Combine(destination, dailyFolder);
            foreach (var item in files)
            {                
                if (!Directory.Exists(destinationDailyFolder))
                    Directory.CreateDirectory(destinationDailyFolder);
                item.CopyTo(Path.Combine(destinationDailyFolder, item.Name),true);
            }
            var Directories = new DirectoryInfo(source).GetDirectories();
            foreach (var directory in Directories)
            {
                CopyFolder(directory.FullName, Path.Combine(destination,directory.Name));
            }
        }