Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# FileInfo找到文件,但file.Copy找不到该文件_C#_.net_File_Fileinfo_Directoryinfo - Fatal编程技术网

C# FileInfo找到文件,但file.Copy找不到该文件

C# FileInfo找到文件,但file.Copy找不到该文件,c#,.net,file,fileinfo,directoryinfo,C#,.net,File,Fileinfo,Directoryinfo,我正试图找到一个具有上次写入日期的文件,并将其复制到其他位置。它正确地找到了文件,但当我试图复制它时,它找不到它刚刚找到的文件。这在SSIS脚本任务中 DirectoryInfo directory = new DirectoryInfo(@"path"); FileInfo[] files = directory.GetFiles(); //files that have been written to in the last 3 days DateTime lastWrite = Date

我正试图找到一个具有上次写入日期的文件,并将其复制到其他位置。它正确地找到了文件,但当我试图复制它时,它找不到它刚刚找到的文件。这在SSIS脚本任务中

DirectoryInfo directory = new DirectoryInfo(@"path");
FileInfo[] files = directory.GetFiles();

//files that have been written to in the last 3 days
DateTime lastWrite = DateTime.Now.AddDays(-3); 

foreach (FileInfo latestFile in files)
{  
    // if its the correct name
    if (latestFile.Name.StartsWith("OMC")) 
    {
        // if its in the last 3 days
        if (latestFile.LastWriteTime > lastWrite) 
        {    
            lastWrite = latestFile.LastWriteTime;

            // this correctly find the file and puts it into the file variable.
            file = latestFile.ToString(); 

            // this errors out saying it cannot find the file.
            // (Does not even go to the outputFile)
            File.Copy(file, outputFile, true); // <- error

            //backs the file up 
            File.Copy(file, backupfile, true);
        }
    }   
}
DirectoryInfo directory=newdirectoryinfo(@“路径”);
FileInfo[]files=目录.GetFiles();
//在过去3天内写入的文件
DateTime lastWrite=DateTime.Now.AddDays(-3);
foreach(文件中的文件信息最新文件)
{  
//如果是正确的名字
if(latestFile.Name.StartsWith(“OMC”))
{
//如果是在过去3天内
如果(latestFile.LastWriteTime>lastWrite)
{    
lastWrite=latestFile.LastWriteTime;
//这将正确找到文件并将其放入file变量中。
file=latestFile.ToString();
//此错误表示找不到该文件。
//(甚至不转到outputFile)

File.Copy(File,outputFile,true);//最新的File.ToString()的计算结果是什么?这是一种获取路径的奇怪方法

如文档所示,使用
FileInfo.FullName

您可以使用调试器自己查找此类错误。

FileInfo.ToString()
返回文件名,但为了复制它,您需要完整路径。更改

file = latestFile.ToString();


然后试一试。

您可能需要构建完整路径,而不是使用:

发件人:

在某些情况下,ToString方法返回的字符串不表示完全限定路径。例如,当您使用GetFiles方法创建FileInfo对象时,ToString方法不表示完全限定路径


当你设置断点时,
文件
是否有文件的完整路径?他不是这样问的。只需使用全名输入字符串,不要否决所有投票!@PoweredByOrange请不要使用外部网站发布图像,尤其是那些可能有不适合工作的横幅的网站,而是将图像添加到答案中,然后合作请复制答案的链接并将其放入您的评论中。您可以在完成后放弃答案。@ScottChamberlain没有意识到其中包含不适当的内容。删除了评论,因为原始海报也删除了他/她的所有评论。只不过是一条评论。不确定您为什么会这样想。我会指出问题并给出解决方案。什么你说什么?
file = latestFile.FullName;
file = latestFile.FullName;