3

ストリームライターを使用してドキュメント フォルダーにテキスト ファイルを作成しようとしていますが、実際にはフル パスを使用しているときに相対パスを使用していると見なされます。

このパス「%HOMEPATH%/My Documents/」を使用してファイルを作成しようとしていますが、これは相対パスとして扱われます。

どんな助けでも感謝します、ありがとう。

4

5 に答える 5

10

- を使用する必要がありますEnvironment.GetFolderPath。この場合、ハードコーディングMy Documentsをまったく回避できます。

string docs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

それに関連するディレクトリ名を取得したい場合は、次を使用する必要がありますPath.Combine

string fooDocsDirectory = Path.Combine(docs, "foo");
于 2012-08-22T21:00:08.813 に答える
4

.Net でユーザーの Documents フォルダーを取得する正しい方法は、 を使用Environment.GetFolderPath()して渡すことですEnvironment.SpecialFolder.MyDocuments

于 2012-08-22T20:59:57.097 に答える
3

システム変数を使用するのではなく、System.Environment.SpecialFolder.MyDocumentsを使用して My Documents パスにアクセスします。

于 2012-08-22T20:59:53.400 に答える
0

コマンドプロンプトから環境変数を確認してください。私のマシンに次のように表示されます-

ホームドライブ=C:

HOMEPATH=\Users\foo

したがって、問題を解決するには、代わりに %HOMEDRIVE%%HOMEPATH% を試してください

于 2012-08-22T21:03:52.613 に答える
0

何らかの API を使用して環境変数を解決し、絶対パス (「C:.....」) を含むパスをStreamWriterに入力します。

David Staratton が提案したように、Environment.SpecialFolder Enumerationを使用できます。

于 2012-08-22T21:00:50.703 に答える