C#File.Move找不到现有文件?

时间:2014-01-23 13:47:35

标签: c# file move exists fileinfo

我有一种将文件解压缩到“解压缩”文件夹中的方法。问题是两个zip文件中存在重复的文件 - 因此,当解压缩第二个zip文件时,由于文件名已存在,该过程将失败。我决定重命名现有文件以避免此问题,但我的if(File.Exists ...)语句没有提取存在的文件。这可能是一个noob语法问题?

private void UnzipFiles()
{
        sourceDirectory = @"c:\id";
        unzippedDirectory = @"C:\id\z_unzipped";
        processedDirectory = @"C:\id\z_processed";

        // get list of files from directory and unzip them
        DirectoryInfo dirInfo = new DirectoryInfo(sourceDirectory);
        FileInfo[] infos = dirInfo.GetFiles("*.zip");

        foreach (FileInfo f in infos)
        {
            if (File.Exists(unzippedDirectory + @"\" + f.Name)){
                // rename existing file
                File.Move(unzippedDirectory + @"\" + f.Name, unzippedDirectory + @"\" + f.Name + " renamed by " + f.Name);
            }

            System.IO.Compression.ZipFile.ExtractToDirectory(f.FullName, unzippedDirectory);
            File.Move(f.FullName, processedDirectory + @"\" + f.Name);
        }  
    }

0 个答案:

没有答案