2

在 Windows 7 上的动态 ClearCase 视图中,我有一个大小为 0 和 name 的文件myproject.prj.$$$。我无法打开、删除、重命名或修改该文件。我更喜欢删除该文件,但是在尝试删除它时:

  • Windows 资源管理器显示错误消息“无效的 MS-DOS 功能”。
  • cmd.exedel:“不正确的功能”。
  • ClearCase Explorer 什么也不做。

我在不同的位置创建了一个同名的文件,并且能够编辑和删除该文件而没有任何问题 - 所以我猜文件名不是问题。该文件在计算机崩溃后首次出现。我不想删除并重新创建视图。

我该怎么做才能删除这个文件?

4

2 回答 2

2

它看起来类似于“删除视图私有文件失败并出现错误:找不到指定的文件”:

原因

视图专用文件已从 .s 目录中的视图存储中移动或删除。

视图数据库仍然知道该文件并且与源容器不同步。

注意:发生这种情况的最常见原因是病毒扫描。病毒扫描程序配置为将疑似病毒的文件移动到隔离区或配置为删除该文件。

解决方案 1

删除并重新创建视图。

解决方案 2

如果删除视图不是一个选项,则同步视图数据库和源容器

下面的示例非常完整,但OP Martin在评论中提到:

没有必要运行这些命令:
mvfs日志已经多次包含丢失文件的名称
在“视图存储容器路径”创建一个空文件后,可以删除视图中的文件


例子

800011174be29f22Paul.txt文件的视图存储容器Paul.txt被删除。

M:\niewandt_view5\rn-robin>mvfsstorage Paul.txt
C:\ccstg_c\views\niewandt_view5.vws\.s\00007\800011174be29f22Paul.txt

这是预期的结果,尽管该文件不再存在。

现在我们刷新 mvfs 缓存:

M:\niewandt_view5\rn-robin>mvfscache -f mnode

并再次运行mvfsstorage命令:

M:\niewandt_view5\rn-robin>mvfsstorage Paul.txt
mvfsstorage: Error: Paul.txt - can't fetch cleartext

现在我们有一个问题来确定缺少哪个存储容器。

尝试打开文件给出:

---------------------------
Editor
---------------------------
Invalid Function.
---------------------------
OK  
---------------------------

如果我们尝试删除该文件,它会报告:

---------------------------
Error deleting file or folder
---------------------------

Paul can not be deleted: Invalid MS-DOS function.
---------------------------
OK  
---------------------------

要查找该文件的视图存储容器路径,您需要查看mvfs日志。

mvfs 日志显示:

{89 pid/tid 139400000cf0/883b7838eb6b63d0} cleartext lookup view=niewandt_view5 vob=\rn-robin dbid=0x80001117 - No such file or directory

{90 pid/tid 139400000cf0/883b7838eb6b63d0} cleartext pname= \Device\HarddiskVolume1\ccstg_c\views\niewandt_view5.vws\.s\00007\800011174be29f22Paul.txt

“\Device\HarddiskVolume1”位置可以在 ClearCase Explorer 中的视图属性“高级”选项卡、“主机路径”中找到

于 2013-08-22T10:18:54.337 回答
0

我最近在windows环境中遇到了这个问题。

*

(注意:如果您可以删除已损坏且无法检索该文件的数据的本地查看私有文件,请继续)

*

我的情况与上述类似,并出现以下错误 -

 1. Windows Explorer shows the error message “Invalid MS-DOS function”.
 2. cmd.exe’s del: “Incorrect function”.

mvfslog我通过输入命令提示符找到了 mvfs 日志路径,这将输出以下详细信息

Log priority:   error
irpops mask:    0x00000000
vops mask:      0x00000000
vfsops mask:    0x00000000
xops mask:      0x00000000
traps mask:     0x00000000
Kernel logfile: "C:\mvfslogs\20191205.log"

现在从上面的路径打开日志文件

"C:\mvfslogs\20191205.log"

因此,如果您最近有不正确的功能,那么这将是上述日志文件中最后记录为错误的数据。

打开日志文件并在文件末尾观察,它读取类似于以下内容 -

line #(last-1) - mvfs: Error: ....da..da..da...da... - No such file or directory
line #(last) - mvfs: Error: ....da...da...da...da... \your_container_location\..da..\..da..\..da..your_view_name.vws\.s\00037\800001765bf06476cc3080a

因此,上述路径中的最后一个词(800001765bf06476cc3080a)是您在 your_container_location 中的文件的实际文件引用。(有时它可能读作 800001765bf06476cc3080ayour_file_name.extension)。

所以现在发生的事情是

它正在 your_container_location 路径 (\your_container_location..da.....da....da..your_view_name.vws.s\00037) 中查找您的文件引用 800001765bf06476cc3080a,但未找到(因为数据在您的本地视图和 your_container_location)。

所以现在只需要

Step 1-to create a file named as 800001765bf06476cc3080a (as per your file name) in \your_container_location\..da..\..da..\..da..your_view_name.vws\.s\00037

Step 2-refresh your local view.

Step 3-Delete the file.

现在该文件应该可以永久删除了。您可以重复使用您的视图。

于 2019-12-06T05:59:04.400 回答