2009-04-15 38 views

答えて

43

使用

Path.GetTempPath(); 

または

Path.GetTempFileName(); 

コメンテーターが指摘したように、GetTempFileName()はスレッドセーフではありません - しかし、あなたがたGUIDに基づいて一意のファイル名を構築することができます。

+4

注GetTenpFileNameがかもしれません(GetTempFileNameからの戻りとファイルを開く間に何か他のファイルが作成されるかもしれない)ため、複数の時間を呼び出す必要があります。 – Richard

+0

あなたは正しいです、情報ありがとうございます – tanascius

+0

@リチャード**あなたの**アプリケーションの中で別のアプリ/プロセスまたは別のスレッドを意味しますか? –

7

使用System.IO.PathからWindows API関数GetTempPath()

using System.IO 

... 

myTempPath = Path.GetTempPath(); 

あなたはファイルシステムがよくあなたのプログラムの実行中に変更される可能性があることに注意する必要があります(MSDNを参照してください)。 Tempパスが変更される可能性は低い(または付与されている)か、一時ファイルがユーザーによって移動または削除された可能性があります。

正常に見つからない場合は、アクセスするたびにその存在を確認し、ケースを処理するように準備されています。

11

他の人が

System.IO.Path.GetTempPath() 

に関するそれに私を打つしかし、あなたはまた、アプリケーションデータフォルダーに見ることができます。これにより、すべてのユーザーに1つの共有または1人のユーザーに1つの共有機能があるように、ファイルをより詳細に制御できます。あなたは一時的な場所や部分的な信頼での作業に書き込むために、あなたのアプリケーションが必要な場合は

Application.CommonAppDataPath 
Application.UserAppDataPath 
0

、あなたはIsolatedStorageを検討する必要があると思います。

0

あなたは一時的な場所を参照して、独自のカスタムの一時ファイル名を構築したい場合、私はPATHを取り除き、自分自身のファイル名を適用するには、このようなものを使用...

string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf"; 
関連する問題