Vit*_*aly 4 c++ filesystems winapi
程序中有两个字符串.它们中的每一个都包含一些文件或文件夹的路径.如何检查C++这些路径是否属于同一文件/文件夹?我可以使用Windows API执行此操作吗?
您可以使用Boost Filesystem.
它具有跨平台的额外重量; 这显然也是一个潜在的优势.如果您想要检查它,请注意下面的粗体API参考:GetFileInformationByHandle.
bool equivalent(const path& p1, const path& p2);
bool equivalent(const path& p1, const path& p2, system::error_code& ec);
Run Code Online (Sandbox Code Playgroud)
效果:确定file_status s1和s2,分别如状态(p1)和状态(p2).
返回:如果sf1 == sf2且p1和p2解析为同一文件系统实体,则返回 true,否则返回 false.
如果两个候选实体驻留在同一位置的同一设备上,则认为两条路径解析为同一文件系统实体.这通过POSIX stat结构的值确定,如同两个路径的stat()一样,具有相等的st_dev值和相等的st_ino值.
[ 注意:POSIX要求"st_dev在局域网中必须是唯一的".保守的POSIX实现也可能希望检查相等的st_size和st_mtime值.Windows实现可以使用 GetFileInformationByHandle()作为stat()的代理,并将"same"视为dwVolumeSerialNumber,nFileIndexHigh,nFileIndexLow,nFileSizeHigh,nFileSizeLow,ftLastWriteTime.dwLowDateTime和ftLastWriteTime.dwHighDateTime的相等值. - 结束说明]
抛出:filesystem_error if(!exists(s1)&&!exists(s2))|| (is_other(s1)&& is_other(s2)),否则在错误报告中指定.
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |