core icon indicating copy to clipboard operation
core copied to clipboard

[BUG] 操作系统文件资源管理器中选中文件拖入到opensumi ide文件树中内容消失

Open 767746649zyy opened this issue 9 months ago • 11 comments

描述你的问题(Describe the bug) 操作系统文件资源管理器中文件222.env拖入到opensumi ide右侧区域打开,显示正常,文件内容没丢失,如图 image image

操作系统文件资源管理器中文件222.env拖入到opensumi ide左侧文件树区域test文件夹下并打开,显示异常,文件内容丢失,如图 image image

复现路径(To Reproduce)

预期表现(Expected behavior)

环境信息(Environment)

  • OS: [e.g. macOS 11.2 Apple M1/Windows10/Windows11]
  • Browser: [e.g. chrome, safari, electron]
  • OpenSumi Version: [e.g. 2.13.0]

767746649zyy avatar May 06 '24 07:05 767746649zyy

@767746649zyy 该问题是否涉及你们的一些逻辑修改导致的?在 ide-electron 案例中能复现吗?MacOS 环境下试了一下好像没这个问题。

erha19 avatar May 06 '24 08:05 erha19

@767746649zyy 该问题是否涉及你们的一些逻辑修改导致的?在 ide-electron 案例中能复现吗?MacOS 环境下试了一下好像没这个问题。

我试试看能否在 ide-electron 中复现

767746649zyy avatar May 06 '24 09:05 767746649zyy

@767746649zyy 该问题是否涉及你们的一些逻辑修改导致的?在 ide-electron 案例中能复现吗?MacOS 环境下试了一下好像没这个问题。

我试试看能否在 ide-electron 中复现

可复现 1.js 文件内容为“function a (){}” 在拖拽到右侧打开展示正确有内容如图1,拖拽到文件树的某个文件夹下展示无内容 如图2 图1 图2 在vscode中直接将操作系统文件资源管理器的文件拖拽到ide 文件树的某个文件夹下无异常,文件内容仍然存在 image

767746649zyy avatar May 06 '24 09:05 767746649zyy

opensumi版本2.27.2 2.26.8 均可复现

767746649zyy avatar May 06 '24 09:05 767746649zyy

@767746649zyy 是运行 ide-electron 项目后测试,我这边无法复现这个问题。

erha19 avatar May 06 '24 10:05 erha19

@767746649zyy 是运行 ide-electron 项目后测试,我这边无法复现这个问题。

你们是MacOS 环境下吗 我的是win 10系统 可复现

767746649zyy avatar May 06 '24 23:05 767746649zyy

@767746649zyy 看一下执行日志,打开文件时是否会因为中文或者路径原因读取了错误的文件内容,相关代码位置见:

https://github.com/opensumi/core/blob/ec0fc77694997fa304e16d988886fbe2a0f15768/packages/editor/src/browser/workbench-editor.service.ts#L1322

MacOS 下确实还复现不了这个问题..

erha19 avatar May 07 '24 02:05 erha19

我看到控制台打印报错了 w我们用的node版本 v14.17.6 会不会版本太低了这个原因 image

767746649zyy avatar May 11 '24 07:05 767746649zyy

@767746649zyy 可以到具体文件这里调试一下看看,加点日志看看,目前看报错就是这个 $writeStream 方法报错,代码见:

https://github.com/opensumi/core/blob/6416e4f0bc9f49566e340545828bb0ae123a3d72/packages/addons/src/node/file-drop.service.ts#L18-L33

erha19 avatar May 11 '24 08:05 erha19

@767746649zyy 可以到具体文件这里调试一下看看,加点日志看看,目前看报错就是这个 $writeStream 方法报错,代码见:

https://github.com/opensumi/core/blob/6416e4f0bc9f49566e340545828bb0ae123a3d72/packages/addons/src/node/file-drop.service.ts#L18-L33

日志文件在哪里 没找到

767746649zyy avatar May 11 '24 08:05 767746649zyy

@767746649zyy 引入一下 INodeLogger,输出一下参数看看是否有误,例如:

@Autowired(INodeLogger)
 private readonly logger: INodeLogger;

erha19 avatar May 11 '24 09:05 erha19