所以我正在尝试编译一个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;
答案 0 :(得分:9)
这表明filename
变量引用了一个空字符串。
您尚未显示设置filename
值的代码,但这是值得关注的内容。
答案 1 :(得分:0)
首先,尝试查看在文件名上放置Watch时获得的内容,然后在异常抛出行中中断。如果它是空的,那么找出它何时被设置为空字符串,如果它不是空的,那么这里的东西是非常错的,它可能是某个地方另一个(邪恶的)代码片的结果。
接下来,我建议您使用File.readXXXXX来读取文件,而不是新的FileStream。 File类可以很好地处理open-read-close过程。
希望有所帮助