ExpandEnvironmentStrings扩展系统变量

本文介绍了一个使用 C++ 在 Windows 环境下处理路径的方法。具体实现为:通过调用 ::ExpandEnvironmentStrings 函数将环境变量展开为实际路径,并附加文件名 Test.txt 到该路径中,最后检查文件是否存在。
CString csFilePathName;
::ExpandEnvironmentStrings(_T("%ProgramData%"), csFilePathName.GetBuffer(MAX_PATH), MAX_PATH);
csFilePathName.ReleaseBuffer();
csFilePathName += _T("Test.txt");
if (PathFileExists(csFilePathName))
{
    //Other operation
}

 

Sub YY() ' 声明变量(新增fileNameWithExt存储带扩展名的文件名) Dim targetGroup As String, filePath As String, fileNameWithExt As String, fileName As String Dim wsh As Object, shellApp As Object, ws As Worksheet Dim fileExist As Boolean, folderPath As String ' -------------------------- 1. 初始化与参数校验 On Error Resume Next Set ws = ActiveSheet Set wsh = CreateObject("WScript.Shell") Set shellApp = CreateObject("Shell.Application") On Error GoTo 0 If ws Is Nothing Then MsgBox "请先激活操作工作表!", vbExclamation Exit Sub End If ' 读取微信群名(B5) targetGroup = Trim(ws.Range("B5").Value) If targetGroup = "" Then MsgBox "B5单元格未填写微信群名!", vbCritical Exit Sub End If ' 读取文件路径(H1),拆分【文件夹路径】→【带扩展名的文件名】→【纯前缀文件名】 filePath = Trim(ws.Range("H1").Value) fileExist = (Dir(filePath) <> "") If filePath = "" Or Not fileExist Then MsgBox "H1单元格路径无效或文件不存在!", vbCritical Exit Sub End If ' 步骤1:拆分文件夹路径(例:C:\Users\HP\Desktop\) folderPath = Left(filePath, InStrRev(filePath, "\")) ' 步骤2:拆分带扩展名的完整文件名(例:娜250902.xlsx) fileNameWithExt = Mid(filePath, InStrRev(filePath, "\") + 1) ' 步骤3:关键修改——去掉.xlsx扩展名,只保留前缀(例:娜250902) fileName = Left(fileNameWithExt, InStrRev(fileNameWithExt, ".") - 1) ' 1. 打开文件所在文件夹,获取窗口标题(避免固定“桌面”,适配任意文件夹) shellApp.Open (folderPath) Application.Wait Now + TimeValue("0:0:2") ' 等待文件夹完全打开 Dim folderWinTitle As String folderWinTitle = wsh.ExpandEnvironmentStrings("%USERPROFILE%") ' 适配系统路径,确保获取正确窗口 folderWinTitle = Replace(folderPath, folderWinTitle, "此电脑") ' 转换为资源管理器显示的标题格式(例:此电脑\桌面) ' 2. 激活文件夹窗口,打开搜索框(按Ctrl+F快速定位搜索框,无需猜TAB次数) wsh.AppActivate folderWinTitle Application.Wait Now + TimeValue("0:0:1") wsh.SendKeys "^f", True ' 直接打开文件夹搜索框(通用操作,无需调整) Application.Wait Now + TimeValue("0:0:1") ' 3. 输入提取的fileName(无前缀)搜索,等待结果加载 wsh.SendKeys fileName, True ' wsh.SendKeys fullFileName, True wsh.SendKeys "{Enter}", True End Sub按全名 列如娜20250902在文件搜索框搜索
最新发布
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值