使用File.Move错误时无法创建文件

时间:2017-12-01 18:25:17

标签: c# file csv move

我有一个.csv文件作为附加图像,其中包含文件夹和文件列表。我想阅读.csv文件并在不同的文件夹下重新创建相同的文件夹结构。

enter image description here

比如说我有C:\ Data \ SourceFolder \ Folder2 \ Folder4 \ File1.txt,我希望将文件移动到C:\ Data \ FilesCopiedfromC \ SourceFolder \ Folder2 \ Folder4 \ File1.txt。在上面的destinaton路径中,C:\ Data \ FilesCopiedfromC将始终相同。我可以在目标中创建文件夹结构,但是当我执行file.move从源到目标时,我得到一个"当文件已经存在时无法创建错误"。

try
        {
            string inputfile = textBox1.Text.ToString();
            using(StreamReader reader = new StreamReader(inputfile))
            {
                string headerline = reader.ReadLine();
                Boolean firstline = true;
                string line = string.Empty;
                 string SourceFileNameCSV;
                string SourceFilePathCSV,totalSourceFilePath, strConstructedDestinationfullpath;
                string[] parts;
                while ((line = reader.ReadLine()) != null)
                {
                    char[] delimiters = new char[] { ',' };
                    parts= line.Split(delimiters);
                    if (parts.Length > 0)
                    {
                        SourceFilePathCSV = parts[0];
                        SourceFileNameCSV = parts[1];
                        totalSourceFilePath = SourceFilePathCSV + "\\" + SourceFileNameCSV;
                        strDestinationDynamicPath = SourceFilePathCSV.Replace("C:\\Data\\", " ").TrimEnd();
                    strConstructedDestinationfullpath = Path.Combine(strDestinationStaticPath, strDestinationDynamicPath);
                        if (!string.IsNullOrEmpty(strConstructedDestinationfullpath))
                        {
                            if (!Directory.Exists(strDestinationDynamicPath))
                            {
                                Directory.CreateDirectory(strConstructedDestinationfullpath);
                            }
                            // File.Move(totalSourceFilePath, strConstructedDestinationfullpath);
                        }
                    }

                }
            }

        }//try

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您需要为目标指定文件名,目前您只是提供路径:

$ git filter-branch --msg-filter 'head -1'

答案 1 :(得分:1)

这是因为,显然,该文件已经存在于目的地中。您可以做的是检查文件是否存在删除,如果是这样的话:

if (System.IO.File.Exists("filename"))

{

//delete

   System.IO.File.Delete("filename"); //try/catch exception handling 
  needs to be implemented

}