4

だから私は小惑星ゲームをコンパイルしようとしています。ほぼ機能しており、すべてのファイルが配置されているなど...

このコードにヒットすると問題が発生します。

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;
4

2 に答える 2

10

これは、filename変数が空の文字列を参照していることを示しています。

の値を設定するコードは示していませんがfilename、それを確認する必要があります。

于 2010-10-19T18:54:13.513 に答える
0

まず、ファイル名にWatchを配置したときに何が得られるかを確認し、例外をスローする行で中断します。空の場合は、いつ空の文字列に設定されたかを調べます。空でない場合は、ここで何かが非常に間違っています。これは、別の(悪の)コード部分の結果である可能性があります。

次に、新しいFileStreamではなく、File.readXXXXXを使用してファイルを読み取ることをお勧めします。Fileクラスは、open-read-closeプロシージャを非常にうまく処理できます。

それが役に立てば幸い

于 2010-10-20T05:05:39.323 に答える