我以这种方式打开文件:
errno_t err01;
int fHandle;
err01 = _sopen_s(&fHandle, fileName, _O_RDWR, _SH_DENYRW, 0);
现在我应该使用int-descriptor(在这个例子中名为fHandle
)作为文件的标识符。
问题:我能知道只有这个int-descriptor,得到与之对应的文件名吗? (假设,打开文件后我丢失了fileName
变量值)
答案 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