none
使用System.IO.StreamWriter寫出文字檔時,檔案可以中途被讀取嗎? RRS feed

  • 問題

  • 請問一下!

    我有一個Case有Server A跟Client PC B

    A會定時去檢查資料庫並將資料寫出成一個文字檔

    另外電腦B會排程用FTP的方式來掃那個放文字檔的資料夾將檔案抓回去並刪除。

    但根據User說他們有時候抓回去的檔案後面會被截斷(比如說50行資料只到40行)

    但我有點疑惑我資料流是一次寫入後才關閉檔案。

    檔案未關閉之前User的FTP可以在我的目錄下抓到文字檔嗎?

    輸出程式如下:

     

    System.IO.FileStream fs = new
     System.IO.FileStream(fPath + fName, System.IO.FileMode.OpenOrCreate);   
       System.IO.StreamWriter sw = new
     System.IO.StreamWriter(fs, System.Text.Encoding.Default);
       sw.Write(SteamStr);
       sw.Flush();
       sw.Close();
       fs.Close();
    

     

    • 已編輯 Antarcticat 2010年12月15日 上午 07:01
    • 已移動 阿尼 2010年12月15日 上午 09:36 (從:ASP.NET 與 AJAX(ASP.NET and AJAX))
    2010年12月15日 上午 05:35

解答

  • 使用以下建構函式

    FileStream 建構函式 (String, FileMode, FileAccess, FileShare, Int32)

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已提議為解答 阿尼 2010年12月15日 上午 07:50
    • 已標示為解答 Antarcticat 2010年12月15日 上午 08:48
    2010年12月15日 上午 05:43
    版主

所有回覆

  • 使用以下建構函式

    FileStream 建構函式 (String, FileMode, FileAccess, FileShare, Int32)

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已提議為解答 阿尼 2010年12月15日 上午 07:50
    • 已標示為解答 Antarcticat 2010年12月15日 上午 08:48
    2010年12月15日 上午 05:43
    版主
  • 請再指教一下

    我希望我的檔案未寫入完成前,其他人都不能碰,我這麼參數設置如下:

    是否ok?buffer大小怎麼給比較恰當?

    System.IO.FileStream fs = new System.IO.FileStream

    (

    fPath + fName

    , System.IO.FileMode.OpenOrCreate

    ,System.IO.FileAccess.Write

    ,System.IO.FileShare.None

    ,1024);

    謝謝

    2010年12月15日 上午 07:07
  • FileStream fs = new FileStream(fPath + fName, FileMode.Create, FileAccess.Write, FileShare.Write);
    2010年12月15日 上午 07:50
  • 請再指教一下

    我希望我的檔案未寫入完成前,其他人都不能碰,我這麼參數設置如下:

    是否ok?buffer大小怎麼給比較恰當?

    System.IO.FileStream fs = new System.IO.FileStream

    (

    fPath + fName

    , System.IO.FileMode.OpenOrCreate

    ,System.IO.FileAccess.Write

    ,System.IO.FileShare.None

    ,1024);

    謝謝

    這個部分著力點不在 buffer 上,請用前二位大大建議的建建構函式,以設定檔案權限。
    2010年12月15日 上午 07:57