我计算了一个文件夹中的个文件。如果它是一个,我想将该文件复制到另一个文件夹。我想将文件复制到另一个文件夹而不是文件。 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
}
答案 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