空路径名称不合法

所以我正在尝试编译一个Asteroids游戏。 它几乎正常工作,所有文件都已到位等等……

当它遇到这个代码时会出现问题。

FileStream myFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); string myTempFile = @"F:\Documents\Junior School\Computer Programming (Java 1)\AsteroidsWithSound\AsteroidsWithSound\temp\mysound" + i.ToString() + ".wav"; 

它给了我一个错误/警告,不知道究竟它叫什么,但它说

ArgumentException未处理。 空路径名称不合法。

我在网上看过这样的代码块导致了这个问题但却找不到解决方案。 任何帮助都是极好的。

编辑:文件名在此块中定义。

 string filename = this.Player.FileName; this.Player.Open(""); File.Delete(filename); this.isReady = true; 

这表明filename变量引用了一个空字符串。

您没有显示设置filename值的代码,但这是要查看的位。

首先,尝试查看在文件名上放置Watch时得到的内容,然后在exception抛出行中中断。 如果它是空的,那么找出它何时被设置为空字符串,如果它不是空的,那么这里的东西是非常错的,它可能是某个地方的另一个(邪恶的)代码片段的结果。

接下来,我建议您使用File.readXXXXX来读取文件,而不是新的FileStream。 File类可以非常好地处理open-read-close过程。

希望能帮助到你