使用c#获取已打开文档的文件名

时间:2014-04-15 09:54:34

标签: c# file-io path

在我的应用程序中,我需要获取打开的文件的文件名。我发现了几个线程,关于如何获取正在运行的进程的名称,但没有关于如何获取当前打开文档的文件名(或路径,至少我需要文件名)。

我知道如何获得这条道路:

FileInfo info = new FileInfo(fileName)
string path = info.FullName;

但要使用它,我需要字符串“fileName”,它是当前打开文件的名称。

有什么建议吗? :)

3 个答案:

答案 0 :(得分:0)

如果您有文件的路径,则可以使用以下代码获取文件名:

string path = string.Empty;
string fileName = Path.GetFileName(path);

答案 1 :(得分:0)

你应该P / Invoke有一个API: 尝试GetFileInformationByHandleEx http://msdn.microsoft.com/en-us/library/aa364953(VS.85).aspx,这需要使用文件句柄。

答案 2 :(得分:0)

尝试此功能,为其指定文件路径,如果文件已打开,则会返回false

public bool ckIsFileOpnen(string sFileFullPath)
        {
            try
            {
                using (Stream stream = new FileStream(sFileFullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
                {
                }
                return true; //file is available for write
            }
            catch { }

            return false;
        }