C#关联程序的文件路径中存在空格的问题解决

在C#中,当通过注册表关联的文件路径含有空格时,会导致双击无法正常打开。问题源于Main方法接收到的参数被空格切割成多个字符串。通过研究注册表文件关联,发现解决方案在于将%1参数用双引号包围,以防止路径被分解。通过在注册表的Shell→Open→Command键值中修改命令,添加转义双引号"%1",成功解决了文件路径含空格的打开问题。
摘要由CSDN通过智能技术生成

今天测试的时候无意间发现,打开通过写注册表关联了程序的文件,如果文件名中存在空格,则无法通过双击打开。
经测试发现,原来是在Main方法入口点传入的参数为string[] 类型,当传入带空格的路径时,会被分解成多个字符串存入string[] 数组中。由于Main的参数由注册表关联后直接传入的,所以我没法直接修改传入的字符串参数,又不能避免文件路径中不包含空格。该怎么解决这个问题呢?我开始研究注册表的文件关联。这篇文章给我了很大的帮助:深入注册表之文件关联——文件关联认识篇
先贴上我所用的文件关联的代码:

///<summary>  
/// RegisterFileType使文件类型与对应的图标及应用程序关联起来。 
/// </summary>  
public static void RegisterFileType(FileTypeRegInforegInfo) 
{  
  if(RegistryHelper.FileTypeRegistered(regInfo.ExtendName)) 
   { 
      return;
   }  
  string relationName = regInfo.E
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值