VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 676|回复: 3

[已解决]全部注释掉,留个空函数,还是有错。

[复制链接]
38_avatar_middle
最佳答案
0 
在线会员 发表于 2022-5-23 20:43:59 | 显示全部楼层 |阅读模式
本帖最后由 zmrghy 于 2022-5-23 20:45 编辑

全部注释掉,留个空函数,还是有错。

  1. #include <iostream>
  2. #include <filesystem>
  3. #include <algorithm>
  4. using namespace std;

  5. bool ReduceFileName(const std::filesystem::path& path)
  6. {
  7.         //auto make_name_name = [](const std::wstring& filename)
  8.         //{
  9.         //        size_t a = filename.find(L':');
  10.         //        if (a != std::wstring::npos)
  11.         //        {
  12.         //                a = filename.find_first_not_of(L"\t\n\v\f\r ", a + 1);
  13.         //                size_t b = filename.find_first_of(L"((", a);
  14.         //                b = filename.find_last_not_of(L"\t\n\v\f\r ", b - 1);
  15.         //                return filename.substr(a, b + 1 - a);
  16.         //        }
  17.         //        return filename;
  18.         //};

  19.         //using namespace std::filesystem;
  20.         //try
  21.         //{
  22.         //        for (auto& entry : directory_iterator(path))
  23.         //        {
  24.         //                if (entry.is_regular_file()) // 只处理常规文件
  25.         //                {
  26.         //                        auto ext = entry.path().extension().generic_wstring(); // 扩展名
  27.         //                        std::for_each(begin(ext), end(ext), [](auto& c) {if (c >= L'A'&&c <= L'Z') c += L'a' - L'A'; }); // 扩展名转化成小写
  28.         //                        if (ext == L".mp4")
  29.         //                        {
  30.         //                                const auto& old_name = entry.path().stem().generic_wstring();
  31.         //                                const auto& new_name = make_name_name(old_name);
  32.         //                                if (old_name != new_name)
  33.         //                                {
  34.         //                                        wcout << old_name << L" -> " << new_name;

  35.         //                                        auto new_path = entry.path().parent_path() / (new_name + L".mp4");
  36.         //                                        if (exists(new_path)) // 新文件名已经存在
  37.         //                                        {
  38.         //                                                wcout << L" --- [failed] 文件已存在";
  39.         //                                        }
  40.         //                                        else
  41.         //                                        {
  42.         //                                                std::error_code ec;
  43.         //                                                rename(entry, new_path, ec);
  44.         //                                                if (ec)
  45.         //                                                        cout << " --- [failed] " << ec.message();
  46.         //                                        }

  47.         //                                        wcout << L'\n';
  48.         //                                }
  49.         //                        }
  50.         //                }
  51.         //        }
  52.         //}
  53.         //catch (const std::exception& e)
  54.         //{
  55.         //        cout << "[failed] " << e.what() << '\n';
  56.         //        return false;
  57.         //}
  58.         return true;
  59. }

  60. int main(void)
  61. {
  62.         wcout.imbue(std::locale(std::locale(), "", std::locale::ctype));
  63.         ReduceFileName(u8R"(C:\Users\Administrator\Desktop\[WPF]JJDown\Download\)"); // 使用 Unicode 可避免GBK认字不全
  64. }
复制代码




>------ 已启动生成: 项目: test3, 配置: Debug Win32 ------
1>  test3.cpp
1>test3.cpp(6): error C3083: “filesystem”:“::”左侧的符号必须是一种类型
1>test3.cpp(6): error C2039: “path”: 不是“std”的成员
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\filesystem(26): note: 参见“std”的声明
1>test3.cpp(6): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>test3.cpp(6): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>test3.cpp(68): error C2664: “bool ReduceFileName(const int)”: 无法将参数 1 从“const char [53]”转换为“const int”
1>  test3.cpp(68): note: 没有使该转换得以执行的上下文
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
最佳答案
07_avatar_small
2022-5-24 08:54:46
本帖最后由 freehawkzk 于 2022-5-24 08:57 编辑

没记错的话filesystem是很新的C++标准才支持的,
试试在属性->C/C++->语言->C++语言标准设置成最新试试。

实在不行,换VS2022.




上一篇:读取汉字,再输出,变成乱码
下一篇:关于SQL SERVER
38_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2022-5-28 13:47:37 | 显示全部楼层
本帖最后由 zmrghy 于 2022-5-28 13:52 编辑

VS 2022
全部注释掉,留个空函数,还是有错。


一鼓作气
再而衰
三而竭

坚持者就是loser
07_avatar_middle
最佳答案
12 
在线会员 发表于 2022-5-24 08:54:46 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 freehawkzk 于 2022-5-24 08:57 编辑

没记错的话filesystem是很新的C++标准才支持的,
试试在属性->C/C++->语言->C++语言标准设置成最新试试。

实在不行,换VS2022.
12_avatar_middle
最佳答案
1 
donate_vip 发表于 2022-5-24 16:46:14 | 显示全部楼层
楼上正解,因为我复制代码运行完全没问题。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-1 22:26

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表