Looking for c# Keywords? Try Ask4Keywords

C# Language IsFileReady


пример

Общей ошибкой многих людей, начинающих работу с FileSystemWatcher, не учитывается, что событие FileWatcher возникает, как только создается файл. Однако для завершения файла может потребоваться некоторое время.

Пример :

Например, возьмите файл размером 1 ГБ. Запрос файла apr создается другой программой (Explorer.exe копирует ее откуда-то), но для завершения этого процесса потребуется несколько минут. Событие связано с тем, что время создания и вам нужно дождаться, когда файл будет готов к копированию.

Это метод проверки готовности файла.

 public static bool IsFileReady(String sFilename)
{
    // If the file can be opened for exclusive access it means that the file
    // is no longer locked by another process.
    try
    {
        using (FileStream inputStream = File.Open(sFilename, FileMode.Open, FileAccess.Read, FileShare.None))
        {
            if (inputStream.Length > 0)
            {
                return true;
            }
            else
            {
                return false;
            }

        }
    }
    catch (Exception)
    {
        return false;
    }
}