0

特定のExcelファイルが既に開かれているかどうかを確認したい。それ以外の場合、C#プログラムで同じファイルを再度開くと、読み取り専用形式で開いています。ファイルがすでに開いているかどうかを確認する方法はありますか?

4

1 に答える 1

0

別のプログラムでファイルを開いた場合、このコードはファイルを理解するのに役立ちますが、開くことはできません

<!-- language: c# -->
protected virtual bool IsFileLocked(FileInfo file)
{
FileStream stream = null;

    try
    {
        stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
    }
    catch (IOException)
    {
        //the file is unavailable because it is:
        //still being written to
        //or being processed by another thread
        //or does not exist (has already been processed)
        return true;
    }
    finally
    {
        if (stream != null)
            stream.Close();
    }

    //file is not locked
    return false;
}

(ただし、それでは何もできません。ファイルを開いたプログラムからファイルを閉じる必要があります)

于 2012-07-11T08:02:36.510 に答える