我在Unity 3D(.NET 2.0)中用C#编写游戏。要读取外部文件,我使用 File.ReadAllBytes 。但是,今天我遇到了一个问题,其中一个明显不是空文件的文件没有被破坏也无法正确读取 - ReadAllBytes返回一个零元素的字节数组。我正在尝试阅读的文件是一个MP3文件,我看不出它有什么问题。我可以在FMODEx中加载它,我可以用媒体播放器播放它,但ReadAllBytes返回零。这只发生在该特定文件上,但我确信如果它发生,那么可能会有很多其他文件无法读取。
可能导致 File.ReadAllBytes 出现故障的原因是什么?这件事的最佳解决方法是什么? (例如,如果返回一个空数组,则以另一种方式读取该文件。)
添加代码作为海报还不能:
public void LoadFrom(string filePath)
{
StopTransfer();
byte[] bytes = null;
if (File.Exists(filePath))
{
path = filePath;
name = Path.GetFileNameWithoutExtension(filePath);
extension = Path.GetExtension(filePath);
bytes = File.ReadAllBytes(filePath);
if (bytes.Length == 0) bytes = ReadAllBytes(filePath);
if (bytes.Length == 0) error = "Corrupt file";
fullFile = bytes;
}
else
{
fullFile = null;
error = "Not found";
}
}