我正在尝试将所有文件从rootFolderPath
移至destinationPath
try
{
string rootFolderPath = @"D:\Log_siteq\";
if (!Directory.Exists(Path.Combine(@"D:\Log_takaya\" + comboBox1.SelectedItem.ToString())))
{
System.IO.Directory.CreateDirectory(Path.Combine(@"D:\Log_takaya\" + comboBox1.SelectedItem.ToString()));
}
string destinationPath = Path.Combine(@"D:\Log_takaya\" + comboBox1.SelectedItem.ToString() );
string fileTypes = @"*.*";
string[] fileList = System.IO.Directory.GetFiles(rootFolderPath, fileTypes);
foreach (string file in fileList)
{
string ext = Path.GetExtension(file);
string destination = Path.Combine(destinationPath,file);
File.Move( file,destination);
MessageBox.Show(file);
MessageBox.Show(destination);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
显然MessageBox.Show(file);
向我展示了我的根文件夹路径(正常情况下),但MessageBox.Show(destination);
向我展示了同样的事情。
是什么给出的?它只是将我的file
从我的根文件夹移到同一个文件夹中。我没有得到什么东西?
答案 0 :(得分:6)
您正在将destinationPath
与file
的完整文件路径组合:
string destination = Path.Combine(destinationPath, file);
只会用原始文件路径覆盖目标(因为“C:\ desitnation \ C:\ source \ filename.txt”不是有效路径)。
相反,您只需要这样的文件名:
string destination = Path.Combine(destinationPath, Path.GetFileName(file));