Im Großen und Ganzen funktioniert es, aber gelegentlich erhalte ich die folgende Ausnahme:
FileStream wurde aufgefordert, ein Gerät zu öffnen, das keine Datei war. Rufen Sie zur Unterstützung
für Geräte wie „com1:“ oder „lpt1:“ CreateFile auf und verwenden Sie dann die
FileStream-Konstruktoren, die ein Betriebssystem-Handle als IntPtr akzeptieren.
Stacktrace – unter Microsoft.Win32.Win32Native.SafeCreateFile(String
lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode,
SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition,
Int32 dwFlagsAndAttributes, IntPtr hTemplateFile) bei
System.IO.FileStream.Init(String path, FileMode mode, FileAccess
Zugriff, Int32-Rechte, Boolean useRights, FileShare-Freigabe, Int32
bufferSize, FileOptions-Optionen, SECURITY_ATTRIBUTES secAttrs, String
msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess
Zugriff, FileShare-Freigabe, Int32 bufferSize, FileOptions-Optionen, String
msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
bei System.IO.StreamReader..ctor(String path, Codierung,
Boolean discoverEncodingFromByteOrderMarks, Int32 bufferSize, Boolean
checkHost) bei System.IO.StreamReader..ctor(String path, Codierung
) bei System.IO.File.InternalReadAllLines(String-Pfad,
Encoding-Kodierung) bei System.IO.File.ReadAllLines(String-Pfad)
Wenn ich mir jedoch den Dateinamen und den Pfad anschaue, ist es nichts, was ich erwarten würde, um einen solchen Fehler (wie com1.txt) auszulösen.
\\xxx.xxx.xxx.xxx\mbftp\4392-24979.ORD
Alle Dateinamen haben das gleiche Format [Konto]-[Bestellnummer].ORD, Konten sind immer 4-stellige Nummern.
Hier ist der Code, der den Fehler auslöst:
Code: Select all
try
{
if (Directory.Exists(GetElementValue("FTPOrderFolder")))
{
if (File.Exists(fullOrderFilename))
{
if (File.GetLastAccessTime(fullOrderFilename) < DateTime.Now.AddSeconds(-2))
{
order = File.ReadAllLines(fullOrderFilename);
if (order.Length > 0)
{
File.Delete(fullOrderFilename);
NLogHelper.Debug(this, $"Deleted order file : {fullOrderFilename}");
return order;
}
}
}
}
}
catch (Exception ex)
{
NLogHelper.HandledException(this, ex);
}
Mobile version