В целом все работает, но иногда я получаю следующее исключение:
FileStream было предложено открыть устройство, которое не является файлом. Для поддержки
таких устройств, как «com1:» или «lpt1:», вызовите CreateFile, а затем используйте конструкторы
FileStream, которые принимают дескриптор ОС в качестве IntPtr.
Stacktrace — в Microsoft.Win32.Win32Native.SafeCreateFile(String
lpFileName, Int32 dwDesiredAccess, FileShare dwShareMode,
SECURITY_ATTRIBUTES securityAttrs, FileMode dwCreationDisposition,
Int32 dwFlagsAndAttributes, IntPtr hTemplateFile) at
System.IO.FileStream.Init(String path, FileMode mode, FileAccess
доступ, права Int32, логическое значение useRights, Общий ресурс FileShare, Int32
ufferSize, параметры FileOptions, SECURITY_ATTRIBUTES secAttrs, String
msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess
доступ, FileShare доля, Int32ufferSize, параметры FileOptions, String
msgPath, логическое значение bFromProxy, логическое значение useLongPath, логическое значение checkHost)
в System.IO.StreamReader..ctor (путь к строке, кодировка кодировки,
логическое значение defineEncodingFromByteOrderMarks, Int32ufferSize, логическое значение
checkHost) в System.IO.StreamReader..ctor(String path, Encoding
кодировка) в System.IO.File.InternalReadAllLines(String path,
Кодировка кодировки) в System.IO.File.ReadAllLines(String path)
Однако, глядя на имя файла и путь, я не ожидал, что выдаст такую ошибку (например, com1.txt)
\\xxx.xxx.xxx.xxx\mbftp\4392-24979.ORD
Все имена файлов имеют один и тот же формат [account]-[orderno].ORD, номера учетных записей всегда состоят из 4 цифр.
Вот код, который выдает ошибку:
Код: Выделить всё
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);
}
Подробнее здесь: https://stackoverflow.com/questions/493 ... not-a-file
Мобильная версия