如何检查文件是否已经在使用C#Win CE 6

时间:2012-03-27 05:35:00

标签: c# windows-ce

我正在使用这段代码来检查文件是否已经在使用但它不起作用。

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);
}

令人惊讶的是,文件在从另一个进程复制时成功重命名。

有人知道怎么做吗?请建议

0 个答案:

没有答案