我以这种方式打开文件:
errno_t err01;
int fHandle;
err01 = _sopen_s(&fHandle, fileName, _O_RDWR, _SH_DENYRW, 0);
现在我应该使用 int 描述符(在本例中名为 fHandle
)作为文件的标识符。
问题:我可以只知道这个int-descriptor,得到对应的文件名吗? (假设,我在打开文件后丢失了 fileName
变量的值)
最佳答案
您应该能够像这样获取文件句柄:
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
关于c++ - 如何通过 int-descriptor 找出文件名? (或 "can I..?"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359643/