[問題] streamwriter reader在不同環境下不work

作者: b26168 (b26168)   2016-04-12 11:39:57
使用
streamwriter reader
讀寫是不同的檔案
在自己的電腦使用正常
在某部份電腦卻沒有work
似乎沒讀到內容
寫檔有create出file 但0kb
static class Constants
{
public const string LogFileDirectory = @"C:\ABC";
public const string LogFileName = "ChangeLog.dat";
public const string LogBakFileName = "ChangeLog.bak";
public const string DebugLogFileName = "ErrorLog.dat";
}
public MainWindow()
{
InitializeComponent();
string str = "";
if
(System.IO.File.Exists(System.IO.Path.Combine(Constants.LogFileDirectory,
Constants.DebugLogFileName)))
{
StreamReader sr = new
StreamReader(System.IO.Path.Combine(Constants.LogFileDirectory,
Constants.DebugLogFileName));
str = sr.ReadToEnd();
sr.Close();
}
sw = new
StreamWriter(System.IO.Path.Combine(Constants.LogFileDirectory,
Constants.DebugLogFileName));
sw.WriteLine(str + " ====== work start " + GetNowDateString() + "
====== ");
sw.WriteLine(" ====== work end " + GetNowDateString() + " ====== ");
sw.Close();
不知道該從何下手..
作者: TameFoxx (foxx)   2016-04-12 12:08:00
所以我說那個code勒至少把你streamwriter做事部分的codePO出來吧這個code看起來 就算沒讀到檔應該還是會有寫入東西可是為什麼你讀寫的是同一個檔案...?
作者: b26168 (b26168)   2016-04-12 16:51:00
這個檔案要接下去寫下去 主要的不是這個檔拉 這是debug用自己電腦試這段code是沒問題的 想問是否環境有關?
作者: YaMeiLo (亞妹露~!!)   2016-04-12 18:43:00
Close 之前,先Flush可能你讀的東西太少,還在buffer
作者: TameFoxx (foxx)   2016-04-12 18:54:00
不用 close會自動flush
作者: b26168 (b26168)   2016-04-12 23:25:00
問題是我跟對方電腦讀的檔案內容一樣 寫出一樣 對方卻不行
作者: TameFoxx (foxx)   2016-04-13 09:16:00
不是阿 我怎麼看你讀檔寫檔的路徑都一樣阿如果最後出來是0kb 代表你讀的檔案本身就是沒東西因為是同一個阿..........
作者: Litfal (Litfal)   2016-04-13 12:24:00
如果你讀出str沒有要做其他事,根本不需要讀出str,請用https://msdn.microsoft.com/library/36b035cb.aspx
作者: TameFoxx (foxx)   2016-04-13 12:27:00
照理說也不應該空白 只能試試看在close之前先sw.flush()
作者: Litfal (Litfal)   2016-04-13 12:33:00
這的確是匪夷所思,能建應該就能寫,除非他寫之前就跳錯了例如str是null或GetNowDateString()出錯
作者: TameFoxx (foxx)   2016-04-13 13:42:00
摁 那建議原po先單純測試sw.writeline()別call其他function 測試一下
作者: b26168 (b26168)   2016-04-18 17:45:00
好的 我再測試看看 結果怎樣再回文~

Links booklink

Contact Us: admin [ a t ] ucptt.com