如何通过int-descriptor找出文件名? (或“我能......?”)

时间:2014-03-12 17:42:42

标签: c++ file-io

我以这种方式打开文件:

errno_t err01;   
int fHandle;
err01 = _sopen_s(&fHandle, fileName, _O_RDWR, _SH_DENYRW, 0);

现在我应该使用int-descriptor(在这个例子中名为fHandle)作为文件的标识符。 问题:我能知道只有这个int-descriptor,得到与之对应的文件名吗? (假设,打开文件后我丢失了fileName变量值)

1 个答案:

答案 0 :(得分:1)

您应该能够像这样获取文件句柄:

HANDLE hFile;
int fHandle;
err01 = _sopen_s(&fHandle, "blah.txt", _O_RDWR, _SH_DENYRW, 0);
hFile = (HANDLE) _get_osfhandle(fHandle);

然后只使用与文件HANDLE一起使用的函数,例如

GetFinalPathNameByHandle(hFile, Path, BUFSIZE, VOLUME_NAME_NT);
_tprintf(TEXT("path is %s\n"), Path);

HTH