Как проверить, используется ли уже файл C # Win CE 6 - PullRequest
1 голос
/ 27 марта 2012

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

protected bool IsFileLocked(FileInfo file) {
    FileStream stream = null;

    try {
        stream = file.Open(FileMode.Open, FileAccess.Write, FileShare.Write);
    } catch (IOException) {
        return true;
    } finally {
        if (stream != null)
            stream.Close();
    }
}

Затем я попытался переименовать файл, пока он копируется, но все равно он не выдаетисключения.

 protected bool IsFileLocked(FileInfo file) {
    string renameToFileName = string.Empty;
    bool isFileLocked = true;
    int i = 0;
    while (isFileLocked) {
        i++;
        renameToFileName = file.FullName + i.ToString();

        try {
            File.Move(file.FullName, renameToFileName);
            isFileLocked = false;
        } catch (Exception) {
            Thread.Sleep(1000);
        }
    }

    File.Move(renameToFileName, file.FullName);
}

Удивительно, но файл успешно переименовывается при копировании из другого процесса.

Кто-нибудь знает, как это сделать?Пожалуйста, совет

...