5

この質問で私が言いたいのは、URL を保存したり渡したりする必要がある場合、文字列を使用するのはおそらく悪い習慣であり、より良いアプローチは URI タイプを使用することです。しかし、複雑なものをより複雑で肥大化させるのはとても簡単です。

では、ディスク上のファイルに書き込む場合、ファイル名とファイル パスとして文字列を渡す必要がありますか?それとも、要件により適したより適切な型がありますか?

このコードは不格好で、エラーが発生しやすいようですか? また、文字列にデータが含まれていてリストが続く場合、有効なファイル名であるかどうかを確認する必要があります。

private void SaveFile(string fileNameAndPath) { //ファイルを保存するための通常のもの }

4

5 に答える 5

5

ファイル名は文字列でも構いません。.Net Framework はファイル名に文字列を使用しますが、これで問題ないようです。

ファイル名を検証するには、正規表現を試して使用するか、System.IO.Path.GetInvalidFileNameChars に対して無効な文字をチェックします。ただし、ファイルを作成しようとしたときに発生する例外を処理することにより、無効なファイル名の例外的なケースを処理する方がおそらく簡単です-さらに、とにかくこれを行う必要があります....

于 2010-05-27T07:10:17.547 に答える
4

残念ながら、文字列は .NET でこれを行うための慣用的な方法ですFileStream。コンストラクターなどを見ると、文字列が使用されています。

(または) の使用を検討することもできますが、それはやや珍しいことです。FileInfoDirectoryInfo

于 2010-05-27T07:01:34.220 に答える
1

FileInfo (System.IO から) を使用して渡すこともできますが、ファイルを参照する場合、文字列は多かれ少なかれ標準的です。

Path.GetFileName({yourstring}) を使用して、パスからファイル名を取得できます。

于 2010-05-27T07:01:40.773 に答える
0

文字列は問題ありませんが、ファイルが目的のディレクトリに保存されるように、ある程度の努力を払う必要があります。

于 2010-05-27T07:14:07.920 に答える
0

ファイルパスで作業している場合、通常は文字列です。

URL を使用している場合は、 System.Uriクラスの使用を検討できます。

Uri myUri = new Uri(myUrl, UriKind.Absolute);

これにより、uri.Host、uri.Absolute パスなどのプロパティを操作できるようになります。また、url 内の個別のサブフォルダーの文字列配列 (セグメント) も提供されます。

ここの MSDN 情報: System.Uri

于 2010-05-27T08:32:25.573 に答える