PCL2 icon indicating copy to clipboard operation
PCL2 copied to clipboard

xaml问题,使用纯文本进行打开文件操作报错

Open Hatoomu opened this issue 1 year ago • 22 comments

检查项

描述

在按钮代码下重现没有出现问题,文本套用之后点击将出现如下报错: image

重现步骤

1.点击文字弹出普通错误信息 使用到的主页代码:

<local:MyCard Title="标题" Margin="0,0,0,15"> <StackPanel Margin="0,12,0,10"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" > <local:MyButton Margin="0,4,0,10" Width="200" Height="35" Text="打开 PCL 日志" EventType="打开文件" EventData="Log1.txt" ToolTip="PCL 的日志文件就在 PCL 文件夹内,且名为 Log1.txt" /> <local:MyTextButton Margin="5,0,0,0 " FontSize="24" Text="打开 PCL 日志" EventType="打开文件" HorizontalAlignment="Center" EventData="‪Log1.txt" ToolTip="文件位于pcl内" /> </StackPanel> </StackPanel> </local:MyCard>

日志与附件

Log1.txt

Hatoomu avatar Apr 27 '24 11:04 Hatoomu

字面意思,就是不存在,日志在程序主体同路径下的 PCL 文件夹内,并不是与 PCL 在同一个文件夹,才导致的找不到

不过你为啥要插个 U+202A(从左至右嵌入)?

allMagicNB avatar Apr 27 '24 11:04 allMagicNB

字面意思,就是不存在,日志在程序主体同路径下的 PCL 文件夹内,并不是与 PCL 在同一个文件夹,才导致的找不到

这不是路径问题,我添加了可以执行的按键作为参考,对照组已经附带,关于这部分是可以省略的并且成功打开的,它并不是一个路径问题,相关操作步骤log1当中也有记录,当然,它可以被忽略

Hatoomu avatar Apr 27 '24 11:04 Hatoomu

~~就是路径问题好吗?更换 EventData 为 PCL\Log1.txt 后顺利解决~~ 你文件名中夹了个 Unicode 控制字符

allMagicNB avatar Apr 27 '24 11:04 allMagicNB

就是路径问题好吗?更换EventData 即可PCL\Log1.txt顺利解决

显然你并没有试过,我甚至填写了完整路径

Hatoomu avatar Apr 27 '24 11:04 Hatoomu

就是路径问题好吗?更换EventData 即可PCL\Log1.txt顺利解决

image

Hatoomu avatar Apr 27 '24 11:04 Hatoomu

不是你没事为啥插个换行进去?

allMagicNB avatar Apr 27 '24 11:04 allMagicNB

过程 我的建议是要不我先翻翻文件再说... ~理论上完全相同效果的东西有差异这...?~

image


结果: 在PCL内部文件路径/Plain Craft Luncher 2/Controls 中 命名为“MyButton”的分别有“MyButton.xaml”和“MyButton.vb” 而命名为“MyTextButton”在该路径中仅存在“MyTextButton.vb”文件 而并不存在 “MyTextButton.xaml”文件 ~以及两份vb文件本身差异也挺大的...~

截图

image

image


题外话—— ~难道这又是WPF的不支持特性...?~

kong-que-dnf123 avatar Apr 27 '24 12:04 kong-que-dnf123

image MyTextButton 我这边是相对路径和绝对路径都不行

@LTCatt 来看下?

wuliaodexiaoluo avatar Apr 27 '24 13:04 wuliaodexiaoluo

我在 VS Code 中编辑时,发现了一个 Unicode 控制字符 U+202A,可能是这个导致的,但不太确定 Author 粘贴时原样是不是就是这样 image 反正去掉之后刷新主页,点击文本,成功打开

allMagicNB avatar Apr 27 '24 21:04 allMagicNB

@LTCatt

allMagicNB avatar Apr 27 '24 21:04 allMagicNB

就很奇怪 我重写了代码的 EventData,发现 MyButton 和 MyTextButton 都不能用相对路径 但问题是程序是在这里启动的,那么操作路径也应该是这个目录,但 .\PCL\log1.txt 和 PCL\log1.txt 都是 Exception 难不成是系统问题?(Win 10 19H9 x86 专业工作站版本)

wuliaodexiaoluo avatar Apr 30 '24 04:04 wuliaodexiaoluo

就很奇怪 我重写了代码的 EventData,发现 MyButton 和 MyTextButton 都不能用相对路径 但问题是程序是在这里启动的,那么操作路径也应该是这个目录,但 .\PCL\log1.txt 和 PCL\log1.txt 都是 Exception 难不成是系统问题?(Win 10 19H9 x86 专业工作站版本)

发上来文件

allMagicNB avatar Apr 30 '24 04:04 allMagicNB

不对,这明明是在与程序同路径下的 PCL 文件夹中打开的…… image

allMagicNB avatar May 01 '24 08:05 allMagicNB

不对,这明明是在与程序同路径下的 PCL 文件夹中打开的…… image

我的问题基本解决了,感谢support,关于路径由于用不了完整路径我用了...\进行解决

Hatoomu avatar May 02 '24 04:05 Hatoomu

那……关了?

allMagicNB avatar May 02 '24 04:05 allMagicNB

在处理中的反馈…… 不动了吧

MoYuan-CN avatar May 02 '24 05:05 MoYuan-CN

在处理中的反馈…… 不动了吧

问题是这没问题啊

allMagicNB avatar May 02 '24 05:05 allMagicNB

这个问题。。。。可能专属于 x86_32

wuliaodexiaoluo avatar May 03 '24 07:05 wuliaodexiaoluo

根据描述和collaborator的分析结果,推测是复制文件名时插入了莫名其妙的不可见unicode控制字符,导致出错的EventData值事实上并不是期望的“Log1.txt”而是“\u202ALog1.txt”。

可能的修复方案: 1.不修复,因为此功能Works as expected 2.读取EventData时忽略特定的unicode控制字符 3.对报错信息中的unicode控制字符进行转义,以便排查问题

Silverteal avatar May 03 '24 09:05 Silverteal

@LTCatt 打扰一下过来看看?

MoYuan-CN avatar May 03 '24 10:05 MoYuan-CN

我等到统一修 issue 的时候会来看的……

LTCatt avatar May 03 '24 17:05 LTCatt

没啥问题,我加了个 log 以显示尝试打开的实际路径

LTCatt avatar Jul 11 '24 08:07 LTCatt