मुझे आश्चर्यजनक FileNotFoundException
मिल रहा है हालांकि मुझे यकीन है कि फ़ाइल मौजूद है।IO.FileNotFoundException लेकिन फ़ाइल मौजूद होनी चाहिए
मैं बस एक ईमेल के अनुलग्नक के रूप में लॉगफाइल (IO.FileInfo
) जोड़ना चाहता था, इसलिए मैंने यह पता लगाने के लिए प्रत्येक फ़ाइल की लंबाई जांचने की कोशिश की कि क्या उन्हें जोड़ा/ज़िप किया जाना चाहिए। यह ठीक काम करता है अगर ये फ़ाइलें पहले से मौजूद हैं। लेकिन अगर मैंने उन्हें इस दौड़ में बनाया है, तो मैं लंबाई की जांच करने का प्रयास करते समय अपवाद से ऊपर हूं। यह विचित्र रूप से पर्याप्त है कि मैं इन "मौजूदा नहीं" फ़ाइलों में लिख सकता हूं (वास्तव में FileInfo.Exists
false
देता है) बिना किसी समस्या के।
Me.Log.WriteInfo("BlahBlahBlah...", False)
:
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
मैं एक समस्या के बिना फ़ाइल में लिख सकते हैं:
यहाँ कुछ कोड ...
एक वर्ग के निर्माता Log
नामित में फ़ाइलों में से एक बनाना है
LogFile.Length
पर अपवाद प्राप्त करने के बाद एक पंक्ति:
If Me.Log.LogFile.Length <> 0 Then
files.Add(Me.Log.LogFile)
End If
Me.Log
Log
नामक कस्टम लॉगिंग-क्लास ऑब्जेक्ट है जो FileInfo
ऑब्जेक्ट का संदर्भ रखता है।
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
असल @ShellShocks solutionRefresh साथ आसान था:
इस वर्ग Log
में WriteInfo
है, LogFile
IO.FileInfo
-onject है। इस फ़ंक्शन के बारे में कभी नहीं सुना, अजीब है कि जब मैं फ़ाइल रीफ्रेश नहीं करता हूं तो मुझे FileNotFoundException मिलता है।
Me.Log.LogFile.Refresh()
क्या डी मैप ड्राइव या भौतिक ड्राइव है? – kleinohad
यह किस प्रकार का ऐप है - विंडोज सेवा? एएसपी.नेट? – Yahia
'डी' एक भौतिक ड्राइव है, यह कोड न तो Win2008-server पर काम करता है और न ही मेरे विकास पीसी (विन XP) पर। दोनों में यह भौतिक ड्राइव है। यह एक विंडोज़ सेवा होगी लेकिन अब तक परीक्षण उद्देश्यों के लिए यह केवल एक स्टार्ट-बटन के साथ एक WinForm- ऐप है। –