เหนือสิ่งอื่นใดที่อาจทำให้เกิดข้อผิดพลาดนี้:
คุณไม่สามารถมีอักขระบางตัวในสตริง PathFile แบบเต็ม
ตัวอย่างเช่นอักขระเหล่านี้จะทำให้ฟังก์ชัน StreamWriter ล้มเหลว:
"/"
":"
อาจมีอักขระพิเศษอื่น ๆ ที่ขัดข้องด้วย ฉันพบว่าสิ่งนี้เกิดขึ้นเมื่อคุณลองใส่แสตมป์ DateTime ลงในชื่อไฟล์:
AppPath = Path.GetDirectoryName(giFileNames(0))
' AppPath is a valid path from system. (This was easy in VB6, just AppPath = App.Path & "\")
' AppPath must have "\" char at the end...
DateTime = DateAndTime.Now.ToString ' fails StreamWriter... has ":" characters
FileOut = "Data_Summary_" & DateTime & ".dat"
NewFileOutS = Path.Combine(AppPath, FileOut)
Using sw As StreamWriter = New StreamWriter(NewFileOutS , True) ' true to append
sw.WriteLine(NewFileOutS)
sw.Dispose()
End Using
วิธีหนึ่งในการป้องกันปัญหานี้คือการแทนที่อักขระปัญหาใน NewFileOutS ด้วยอักขระที่ไม่เป็นอันตราย:
' clean the File output file string NewFileOutS so StreamWriter will work
NewFileOutS = NewFileOutS.Replace("/","-") ' replace / with -
NewFileOutS = NewFileOutS.Replace(":","-") ' replace : with -
' after cleaning the FileNamePath string NewFileOutS, StreamWriter will not throw an (Unhandled) exception.
หวังว่าจะช่วยให้ใครบางคนปวดหัว ... !
fileName
อะไร?