2016-06-25 5 views
1

コンソールアプリケーション内にあるフォルダ内のテキストファイルに新しいレコードを追加しようとしています。テキストファイルに新しい行を追加する際の問題

open System.IO 

let name = "Fred Thompson" 

let addLine (name: string) = 
    use wr = StreamWriter("c:\\tempsource\\test.txt") 
    wr.WriteLine(name) 
    wr.Close 

私は対話型のウィンドウで実行すると、私はこれを取得: 警告FS0760を:むしろタイプ」より、構文の新しいタイプ(引数) 'を使用してIDisposableインターフェイスをサポートするオブジェクトが作成されることをお勧めします(生成された値がリソースを所有している可能性があることを示すために、コンストラクタを表す関数値として 'Type'を使用します。

さらに、ファイルの下に青い波状の線が表示されました - 私は例のためにそれを短縮しました。私はフルパスで青い線を得る。

この警告を参照すると、これはUpdate warning message when creating IDisposable without 'new'となり、私はこれに接近しなければならないという手がかりはありませんでした。パスだけを取って

おかげ

+4

単に「新しいのStreamWriter」 – s952163

+0

おかげで青い波線ラインがなくなっていると言います。しかし、インタラクティブウィンドウでそれを実行すると、文字列はtest.txtファイルに入力されません。 –

+0

あなたは追加していますか?パスの後に追加してください。 addline "fred Thompson"を実行してください。 – s952163

答えて

3

StreamWriterコンストラクタは、ファイルを上書きするストリームを作成します。 trueを渡すと、追加することができます:

open System.IO 

let name = "Fred Thompson" 

let addLine (name: string) = 
    use wr = new StreamWriter("c:\\tempsource\\test.txt", true) 
    wr.WriteLine name 

addLine name 
+1

厳密には必要であるので、私はあなたの答えの中から 'Close'コール(括弧BTWが必要です)を取り上げて提唱します。 – ildjarn

+0

@CaringDevはインタラクティブウィンドウ内で動作します。今すぐ[スタート]ボタンを実行するとこのエラーが発生します。mscorlib.dllで 'System.UnauthorizedAccessException'型の未処理の例外が発生しました 追加情報: 'c:\\ users \\ tempsource \ test'へのアクセス。 txt 'は拒否されます。 –

+0

@ildjarnありがとう私はそれを削除しました。 –

関連する問題