Есть ли способ открыть файл, которому не менее 5 секунд? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть два процесса, один получает данные и сохраняет в файл в определенной папке.Второй процесс каждую секунду проверяет наличие нового файла в этой папке, читает его и удаляет его, но время от времени второй процесс пытается открыть файл во время его создания и получить и исключение;поэтому я подумывал открыть только те файлы, которые старше 5 секунд.В настоящее время я использую этот код.

Dim FilePaths As String() = Directory.GetFiles(ReportPath, "Report*.rpt", SearchOption.TopDirectoryOnly)

И прочитал, что вы можете получить время создания файла с этим кодом

File.GetCreationTime(FilePath))

Но я не уверен, возможно ли получитьвремя создания файла без получения того же исключения.

Есть идеи, как решить эту проблему?Может быть по-другому.

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте, кстати, я использовал Linqpad, это ускоряет их тестирование.

Dim root As String = "C:\linqpad" 

'Take a snapshot of the folder contents 
Dim dir As New System.IO.DirectoryInfo(root)

Dim fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories)

' This query will produce the full path for all .rpt files 
' under the specified folder including subfolders. 
' It orders the list according to the file name. 
Dim fileQuery = From file In fileList _
                Where file.Extension = ".rpt"  
                Order By file.Length _
                Select file.FullName,file.CreationTime

, чтобы увидеть результат использования linqpad

fileQuery.dump() 

, но это ничего не значит вВизуальная студия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...