不幸的是,我目前无法直接访问我的代码,但该应用程序执行以下操作:
- 得到
string[] files = Directory.GetFiles(dir, "*.mp3", SearchOptions.AllDirectories);
- 遍历 files 中的每个文件并获得一个通用的 Tag 对象(不是专门的 IDV3 对象,或者任何格式)
- 从 Tag 对象构建一个带有新文件名 {track no} - {track name} 的字符串并将其添加到列表中
File.Copy(files[i], newFileName, true)
重命名文件(使用新名称复制到同一目录)
File.Copy
崩溃,它告诉我另一个进程正在使用该文件。我知道事实上没有其他人在使用这些文件,但是我的代码中的某处必须锁定它们,我不知道是什么,也不知道如何推断它是哪一位。
我已经尝试添加myTagObject.Save(); myTagObject.Clear(); myTagObject = null;
以防 TL# 锁定文件,但我想不出我可以在那里做更多的事情来释放它。