Вам необходимо использовать Files.FullName
, а не Files.Name
FullName
, включая полный путь (т. Е. C:\test\foo.txt
), необходимый для File.Move()
и File.Delete()
в то время как Name
- это просто имя файла (т. е. foo.txt
).
Edit:
@ crashmstr правильно, вы не должны делать замену строки вполный путь.В общем, я бы, вероятно, сделал это следующим образом:
foreach (FileInfo file in Folder.GetFiles())
{
string originalFileName = file.FullName;
string fileName = file.Name.Replace(" ", "-").Replace(",", "-");
string newFileName = Path.Combine(file.DirectoryName, fileName);
File.Move(originalFileName, newFileName);
}
Также имейте в виду, что File.Delete()
здесь не нужен, так как оригинальный файл больше не будет там после того, как вы его переместите.