我在这里有一个简单的foreach,我已经使用该folderBrowserDialog
工具获得了文件夹位置,现在我正在尝试浏览每个文件并替换文件名中的某些字符.
我收到一个错误,表示当它到达代码的这一部分时无法找到该文件 File.Move(_FileName, _NewFileName);
任何人都可以对此有所了解吗?非常感谢.
谢谢
foreach (FileInfo Files in Folder.GetFiles())
{
_FileName = Files.Name;
_NewFileName = _FileName.Replace(" ", "-").Replace(",", "-");
File.Move(_FileName, _NewFileName);
File.Delete(_FileName);
}
Run Code Online (Sandbox Code Playgroud)
Bro*_*ass 12
您需要使用Files.FullName
不Files.Name
FullName
包括全路径(即C:\test\foo.txt
这是由需要)File.Move()
和File.Delete()
而Name
仅仅是文件名本身(即foo.txt
).
编辑:
@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);
}
Run Code Online (Sandbox Code Playgroud)
File.Delete()
此处也不需要记住,因为移动后原始文件将不再存在.
归档时间: |
|
查看次数: |
18390 次 |
最近记录: |