2016-04-01 14 views
-5

これを行う方法をかなり時間をかけて調べようとしていますが、かなり研究した後、私は何か助けになることができませんでした。 これは私が必要とするものです:ローカル変数と共にString.Format{0}{1}など)を使用できるようにする必要があります。 System.IO.File.WriteAllLines()ローカル変数を使用してString.Formatを使用するC#

string[] lines = { "Never gonna give you up", "Never gonna let you down"}; 
System.IO.File.WriteAllLines(@"C:\Users\{0}\Desktop\testttt.txt", lines); 

私は何かを{0}を交換できるようにする必要があります。私はそうすることに成功していないとエラー

は「System.Text.Encoding」

+2

'WriteAllLines(String.Formatの(@:Environment.UserName、 "C \ Users \ユーザー{0} \デスクトップ\ testttt.txt")、ライン)でyourVariableを置き換え'? –

+1

あなたは間違っている。自分でビルドするのではなく、System.Enviromentを使用してユーザーディレクトリを取得する必要があります。将来のバージョンのWindowsがフォルダを移動すると、コードが破損します。 (そして、それが起こらないと言う前に、それはWin2KからWindows 7に行きました) –

+1

さて、あなたは*何かを試しました。何かが間違いを起こした。しかし、私たちはあなたが何を試したのか分からないので、今あなたは、その特定のエラーを与えるためにあなたがどんなミスを犯す可能性があるかをランダムに推測することを期待していますか? – hvd

答えて

1

に「文字列」から変換できません返されます

(ユーザーがEnvironment.UserNameを使用してパスをファイル)さて、まず、これはデスクトップディレクトリへのパスを取得する方法ではありません。代わりに、ちょうどこの操作を行います。あなたのソリューションとは異なり

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

を、これは、フォルダのリダイレクト、リモートプロファイルだけでなく、将来のとで動作するWindowsのバージョン(および過去!)。とにかくEnvironment.Usernameは必ずしも正しいフォルダ名ではないことは言うまでもありません:)

第二に、

var subdir = "SomeDir"; 
File.WriteAllLines(string.Format(@"C:\SomeParent\{0}\MyFile.txt", subdir), lines); 

あなたが実際にコールstring.Format方法にする必要があります。 File.WriteAllLinesに別の引数を追加しただけの場合はどうすればうまくいくのでしょうか?可変量の引数を持つ書式設定可能な文字列を受け入れるためのすべてのメソッドも記述していますか?

多少秘密のエラーメッセージは、あなたの引数に合ったメソッドオーバーロードがないことを伝えようとしています。最も近いのは、表示されたエラーの結果を得ることができる点です。

-1
String[] lines = { "Never gonna give you up", "Never gonna let you down"}; 
System.IO.File.WriteAllLines(string.format(@"C:\Users\{0}\Desktop\testttt.txt", yourVariable) , lines); 

独自の

関連する問題