0

奇妙な問題があります...そして、を使用して一時ファイルを作成するところまで絞り込んだと思いますPage.GetTempFileName()

時々エラーメッセージが表示されますCannot create a file when that file already exists.

を使用Path.GetTempFilename()すると同じファイル名が生成され、キャッシュされる可能性はありますか?

使用するコードを変更しています:

Path.Combine(System.IO.Path.GetTempPath(), string.Concat(Guid.NewGuid().ToString(), ".xls"));

これにより一意のファイル名が生成されることを期待していますが、同じ問題が発生する可能性があることを懸念しています。

4

1 に答える 1

2

Path.GetTempFilename()は、ディスク上に実際のファイルを作成します。そのファイル名を取得した後の実行内容によっては、何かをトリガーする可能性があります。過去の古い一時ファイル名メソッド(特に、C標準ライブラリのtmpnamなど)に関連する競合状態を回避するために、実際のファイルを返すように記述されています。

このメソッドで作成されたファイルが削除せずに65,535を超える場合、または一意のファイル名を生成できない場合は、例外がスローされることに注意してください。

では、Path.GetTempFilename()からファイル名を取得した後、そのファイル名で何をしているのでしょうか。

于 2011-07-13T15:46:41.580 に答える