计算文件(如果是一个文件),然后复制到另一个文件夹

时间:2018-09-26 08:53:04

标签: c# file

我计算了一个文件夹中的个文件。如果它是一个,我想将该文件复制到另一个文件夹。我想将文件复制到另一个文件夹而不是文件。 Copy 不接受 int。这是我的代码:

var path       = @"C:\Projects\Copy";
var fileType   = @"*.txt";
var fileOutput = @"C:\Projects\Paste";

int fCount = Directory.GetFiles(path, fileType).Length;

if (fCount == 1)
{
    File.Copy(fCount, fileOutput); // I get stuck here
}

2 个答案:

答案 0 :(得分:1)

如果您想知道是否只有一个文件

 using System.IO;
 using System.Linq;

 ...

 // Directory.GetFiles returns all files found (e.g. 1234567 files) it can be very slow
 // we want at most 2 files found in order do not start copying:
 string[] files = Directory
   .EnumerateFiles(path, fileType) // not GetFiles
   .Take(2)                        // Take at most 2 files
   .ToArray();   

 // we can have 0, 1 or 2 files (thanks to Take(2)) 
 if (files.Length == 1)
   File.Copy(files[0], Path.Combine(fileOutput, Path.GetFileName(files[0])));

如果要复制文件(如果至少有一个 个文件),我们可以完全跳过检查

 foreach (var file in Directory.EnumerateFiles(path, fileType))  
   File.Copy(file, Path.Combine(fileOutput, Path.GetFileName(file)));

请注意

Path.Combine(fileOutput, Path.GetFileName(file))

我们从目标目录原始文件名创建一个新文件名。

答案 1 :(得分:0)

尝试File.Copy("C:\Projects\fileToCopy.txt", "C:\pathToNewLocation\copyOfMyFile.txt", true); 您必须为File.Copy方法提供路径,而不是int

Documentation of File.Copy method