Tim*_*ter 7 .net vb.net io file
FileNotFoundException
虽然我确信文件存在,但我感到很惊讶.
我只是想将Logfiles(IO.FileInfo
)作为附件添加到电子邮件中,因此我尝试检查每个文件的长度以检测它们是否必须添加/压缩.
如果这些文件已存在,这可以正常工作.但是如果我在这次运行中创建它们,当我尝试检查长度时,我会遇到异常.奇怪的是,我可以写入这些"不存在的"文件(实际上FileInfo.Exists
返回false
)而不会出现问题.
这是一些代码......
在名为的类的构造函数中创建其中一个文件Log
:
Me.LogFile = New IO.FileInfo(infoLogPath)
If Not LogFile.Exists() Then
'tried to use `Using` on the Stream but that doesn't change anything'
Using stream = Me.LogFile.Create()
'close and dispose implicitely
End Using
End If
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地写入文件:
Me.Log.WriteInfo("BlahBlahBlah...", False)
Run Code Online (Sandbox Code Playgroud)
我得到例外后的一行LogFile.Length
:
If Me.Log.LogFile.Length <> 0 Then
files.Add(Me.Log.LogFile)
End If
Run Code Online (Sandbox Code Playgroud)
Me.Log
是一个名为的自定义日志记录类对象Log
,用于保存对象的引用FileInfo
.
这是WriteInfo
在课堂上Log
,LogFile
是IO.FileInfo
-onject:
Public Sub WriteInfo(ByVal message As String, ByVal finishLog As Boolean)
Try
Using w As IO.StreamWriter = Me.LogFile.AppendText
If Me.WithTimestamp Then
w.WriteLine(Date.Now.ToString(Globalization.CultureInfo.InvariantCulture) & ": " & message)
Else
w.WriteLine(message)
End If
If finishLog Then w.WriteLine("__________________________")
w.Flush()
w.Close()
End Using
Catch writeLogException As Exception
Try
WriteError(writeLogException, True)
Catch innerEx As Exception
'ignore
End Try
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
实际上, 带有Refresh的@ShellShocks解决方案很简单.从来没有听说过这个函数,奇怪的是,当我不刷新文件时,我得到了一个FileNotFoundException.
Me.Log.LogFile.Refresh()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3553 次 |
最近记录: |