从 Windows 上的 tmpfile() 获取文件名
Get filename from tmpfile() on Windows
如何在不使用tmpnam()的情况下通过调用tmpfile()从Windows上获取文件名?
std::FILE* tmpf = std::tmpfile(); // Opens a temp file
自己动手
const char *name = tmpnam(NULL); // Get temp name
FILE *fp = fopen(name, "w"); // Create the file
// ...
fclose(fp);
remove(name);
一种方法是从FILE
转换为HANDLE
std::FILE* tmpf = std::tmpfile();
HANDLE handle = (HANDLE)_get_osfhandle(_fileno(tmpf));
然后使用 GetFinalPathNameByHandleW
获取文件名(需要 Vista 或更高版本)
char buf[MAX_PATH];
GetFinalPathNameByHandleA(handle, buf, MAX_PATH, VOLUME_NAME_DOS);
另一种方法是自己生成该文件名 - 请参阅此处的帖子:
https://stackoverflow.com/a/37736406/2338477
但也请注意,tmpfile 需要管理员权限才能在某些窗口上工作 - 因此仅当您的应用程序以管理员权限运行时,才可以使用 GetFinalPathNameByHandleW。
相关文章:
- 从 Makefile 中的 $@ 获取文件名
- 有没有一种简单的方法可以从 c++ 中的路径获取文件名?
- 从 SetClipboardData 挂钩获取文件名
- 是否有一种便携式/标准的方法可以在堆栈跟踪中获取文件名和亚麻布
- 如何从文件夹中获取文件名,并将它们添加到QT中的孩子中
- 从 Windows 上的 tmpfile() 获取文件名
- 是否可以从FSEvent id获取文件名
- 如何在单击mfc代码中的关系文件时获取文件名
- 如何在Qt中获取文件名
- 是否有一个WinAPI可以从带有可选空格和其他参数的命令行获取文件名
- 从控制台应用中的命令行参数获取文件名C++
- 从流中获取文件名(或路径)
- 如何在下载文件之前获取文件名
- 在调用函数的任何位置获取文件名和函数名
- 在c++ boost库中使用directory_iterator列出和获取文件名的问题
- 从路径中获取文件名
- gtkmm 和 FileChooserButton 无法获取文件名
- 如何从http请求体字符串获取文件名
- 如何在GNU Makefile中只获取文件名而不扩展名
- 如何从argv中获取文件名并将其与ifstream一起使用/将其更改为ofstream的txt