文件名、目录名或卷标语法不正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件名、目录名或卷标语法不正确相关的知识,希望对你有一定的参考价值。

进Internet Explorer,在地址栏中输入个网址,说:文件名、目录名或卷标语法不正确。
按别的网址也一样,怎样解决

一、常规解决办法:

1、注消或重启电脑,然后再试着删除。

2、进入“安全模式删除”。 

3、在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除。 

4、如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹。 

5、在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。 

6、如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹。 

注:一、高级解决方案: 

1、磁盘错误 

运行磁盘扫描,并扫描文件所在分区,扫描前确定已选上修复文件和坏扇区,全面扫描所有选项,扫描后再删除文件。 

2、预读机制: 

某些媒体播放中断或正在预览时会造成无法删除。在“运行”框中输入:REGSVR32 /U SHMEDIA.DLL,注销掉预读功能。或删除注册表中下面这个键值:[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\\\\InProcServer32]。 

3、防火墙: 

由于反病毒软件在查毒时会占用正在检查的文件,从而导致执行删除时提示文件正在使用,这时可试着暂时关闭它的即时监控程序,或许可以解决。 

4、OFFice、WPS系列软件: 

OFFice的非法关闭也会造成文件无法删除或改名。重新运行该程序,然后正常关闭,再删除文件。

5、借助WinRAR: 

右击要删除的文件夹,选择“添加到压缩文件”。在弹出的对话框中选中“压缩后删除源文件,”随便写个压缩包名,点确定。 

6、权限问题: 

如果是2000和xp系统,请先确定是否有权限删除这个文件或文件夹。 

7、可执行文件的删除: 

如果可执行文件的映像或程序所调用的DLL动态链接库文件还在内存中未释放,删除时就会提示文件正在使用,解决方法是删除系统的页面文件,Win98中是Win386.SWP,Win2000/XP是pagefile.sys。注意要在DOS下删除。 

8、文件粉碎法: 

使用文件粉碎机,如File Pulverizer,可以彻底删除一些顽固文件。

9、制作一个无法删除的“文件保险箱”

文件夹无法删除,未必就是不好的事情,如果把一些重要的文件放在这个目录中,不就可以避免误删了吗?一个文件名只包含空格的文件夹在Windows中是不允许创建和删除的,但在DOS下却可以创建文件名包含\\的文件夹。

扩展资料

1、电脑程序

简单说,计算机程序就是计算机执行指令的一个序列。它既可以只是几条执行某个简单任务的指令,也可能要操作巨大数据量的复杂指令队列。许多计算机程序包含有百万计的指令,而其中很多指令可能被反复执行。在2005年,一台典型的个人电脑可以每秒执行大约30亿条指令。

计算机通常并不会执行一些很复杂的指令来获得额外的机能,更多地它们是在按照程序员的排列来运行那些较简单但为数众多的短指令。 一般情况下,程序员们是不会直接用机器语言来为计算机写入指令的。那么做的结果只能是费时费力、效率低下而且漏洞百出。

所以,程序员一般通过“高级”一些的语言来写程序,然后再由某些特别的计算机程序,如解释器或编译器将之翻译成机器语言。一些编程语言看起来很接近机器语言,如汇编程序,被认为是低级语言。

而另一些语言,如即如抽象原则的Prolog,则完全无视计算机实际运行的操作细节,可谓是高级语言。对于一项特定任务,应该根据其事务特点,程序员技能,可用工具和客户需求来选择相应的语言,其中又以客户需求最为重要。

2、文件夹是专门装整页文件用的,主要目的是为了更好的保存文件,使它整齐规范。普通计算机文件夹是用来协助人们管理计算机文件的,每一个文件夹对应一块磁盘空间,它提供了指向对应空间的地址,它没有扩展名,也就不像文件的格式用扩展名来标识。

文件夹

作用:文件夹是用来组织和管理磁盘文件的一种数据结构。

一种是计算机磁盘空间里面为了分类储存电子文件而建立独立路径的目录,“文件夹”就是一个目录名称,我们可以暂且称之为“电子文件夹”; 它提供了指向对应磁盘空间的路径地址,它可以有扩展名,但不具有文件扩展名的作用,也就不象文件那样用扩展名来标识格式。但它有几种类型,

如:文档、图片、相册、音乐、音乐集等等。使用文件夹最大优点是为文件的共享和保护提供了方便。

为了分门别类的有序存放文件,操作系统把文件组织在若干目录中,也称文件夹。文件夹一般采用多层次结构(树状结构),在这种结构中每一个磁盘有一个根文件夹,它包含若干文件和文件夹。文件夹不但可以包含文件,而且可包含下一级文件夹,这样类推下去形成的多级文件夹结构既帮助了用户将不同类型和功能的文件分类储存,又方便文件查找,还允许不同文件夹中文件拥有同样的文件名。

注:文件名不能超过255个字符(包括空格)。

文件夹加密

随着电脑的普及应用,电脑上的文件与资料等隐私又不想被人发现或是盗取,就可以对文件夹进行加密,网络上有许多工具能对文件夹进行加密处理。其中手动简单加密方法有两种: 方法一:将想要加密的文件——右键添加到压缩文件(ZTP格式)——生成zip压缩文件夹右键——打开方式——用compressdfolders之后对生成的这个文件添加密码OK。试试! 方法二:将想要加密的文件——右键添加到压缩文件——选高级——设置密码——OK

参考资料来源:百度百科:电脑、百度百科:  文件夹、

参考技术A

Win7文件名目录名或卷标语法不正确,最近有很多用户在访问某磁盘的时候,提示无法访问某磁盘,且下一行提示:文件名、目录名或卷标语法不正确,提示的标题是“位置不可用”可以用以下3种解决方法。

第一种方法: 

用户在移动U盘中创建了一个新建文件夹,而后拔掉U盘,上午想要使用这个文件夹,就发现出现了上图中的问题——位置不可用,无法访问这个路径,而且提示温佳明、目录名或卷标语法不正确,新建文件夹里面的2个文件夹还变成了乱码!

既然没有什么重要的文件,就删除吧?但不管是删除还是移动或者是修改、查看属性,都显示位置不可用,无法访问——文件名、目录名或卷标语法不正确!

使用360文件粉碎机粉碎之后,会自动再次生成,只是顶层的新建文件夹被替换成了随机数字,而里面的乱码仍然是乱码,且占据很大的空间,足有100多MB!

经过分析,原因可能是这样的:在创建文件夹的时候,顶层文件夹或内部的2个文件夹的命名可能不符合系统的规范,但是却能够命名上去,但系统不认,可能是Windows的bug,而不是看到乱码最先想到的中毒——因为在查证很多病毒的中毒之后的迹象显示,并没有这种提示!

既然是文件名问题,那么解决方法也就自然有了:

第一,使用Windows自带的纠错功能。

在文件夹所属磁盘上点击鼠标右键,然后在这个磁盘(U盘)的属性选项卡中,找到“工具”选项卡,然后点击“查错”选择夹中的“开始检查”按钮。

点击后会弹出“磁盘检查选项”,将“自动修改文件系统错误”和“扫描并尝试恢复坏扇区”前面的复选框都勾选起来,然后点击“开始”。

第二,将这个出错文件夹之外的文件和文件夹通通转移到其他磁盘,然后格式化这个磁盘,再将复制到其他盘的文件和文件夹复制回来,即可。

第二种方法:


1.注消或重启电脑,然后再试着删除。

2.进入“安全模式删除”。

3.在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除。

4.如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹。

5.在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。

6.如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹。

第三种方法:

1.磁盘错误
运行磁盘扫描,并扫描文件所在分区,扫描前确定已选上修复文件和坏扇区,全面扫描所有选项,扫描后再删除文件。

2.预读机制:
某些媒体播放中断或正在预览时会造成无法删除。在“运行”框中输入:REGSVR32 /U SHMEDIA.DLL,注销掉预读功能。或删除注册表中下面这个键值:[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\\87D62D94-71B3-4b9a-9489-5FE6850DC73E\\InProcServer32]。

3.防火墙:
由于反病毒软件在查毒时会占用正在检查的文件,从而导致执行删除时提示文件正在使用,这时可试着暂时关闭它的即时监控程序,或许可以解决。

4.OFFice、WPS系列软件:
OFFice的非法关闭也会造成文件无法删除或改名。重新运行该程序,然后正常关闭,再删除文件。

5.借助WinRAR:
右击要删除的文件夹,选择“添加到压缩文件”。在弹出的对话框中选中“压缩后删除源文件,”随便写个压缩包名,点确定。

6.权限问题:
如果是2000和xp系统,请先确定是否有权限删除这个文件或文件夹。

7.可执行文件的删除:
如果可执行文件的映像或程序所调用的DLL动态链接库文件还在内存中未释放,删除时就会提示文件正在使用,解决方法是删除系统的页面文件,Win98中是Win386.SWP,Win2000/XP是pagefile.sys。注意要在DOS下删除。

8.文件粉碎法:
使用文件粉碎机,如File Pulverizer,可以彻底删除一些顽固文件。


参考技术B

解决方法:

1、在新建文件之前,可先用系统修复软件进行文件扫描和磁盘修复,以确保磁盘可正常存储文件。

2、如果自己的电脑是双系统运行,可先切换至其他系统,再运行文件。

3、可以利用反病毒查杀软件看自己新建的文件里是否有感染木马病毒,如果发现带有病毒,则需要立即进行木马清查,然后重启电脑再打开文件。

原因:

1、原文件系统被损坏:大家把文件进行拷贝时,可能因磁盘损坏而导致文件系统崩坏,所以文件就会无法打开或变成乱码。

2、系统不兼容:可能自己创建文件夹和真正读取文件夹的电脑系统是不同的,所以读取文件内容时,文件路径不一致,文件无法打开。

3、文件名称无效:在设定文件名称时,可能文件名中带有尾随空格或尾随句点等无效名称,导致文件在打开时,系统会自动去除文件中的无效名称,从而导致文件设置不完整,卷标语法不正确。

扩展资料

注解

当函数的返回值显示此调用将返回有用的数据时,应该立即调用 GetLastError 函数,这是因为当调用成功时,一些函数调用 GetLastError(0) 来删除掉通过函数调用失败设置的错误代码很多 Win32 API 中的函数当函数调用失败时设置线程的错误代码值。有几个函数当用于函数调用成功时,设置此代码值,函数调用失败,一般由一个返回错误代码值来显示。

如 FALSE、NULL、0xFFFF 或 C1,一些函数在调用成功的情况下调用GetLastError,这些情况已写在每个函数的参考页中。

错误代码是 32 位值(但是第31位是最重要的位),第29位是为应用程序定义的错误代码值,系统没有设置这种错误代码,如果为应用程序定义了一个错误代码,则设第29位的值为1,这表明错误代码已经被一个应用程序定义,并保证次错误代码不与系统定义的错误代码发生冲突。

参考资料GetLastError百度百科

参考技术C

出现错误的原因主要是在windows系统下创建文件需要遵循其文件名的规则。导致创建文件失败,从而提示filenotfound异常,文件未找到。

原因:

1.原文件系统被损坏:大家把文件进行拷贝时,可能因磁盘损坏而导致文件系统崩坏,所以文件就会无法打开或变成乱码。

2.系统不兼容:可能自己创建文件夹和真正读取文件夹的电脑系统是不同的,所以读取文件内容时,文件路径不一致,文件无法打开。

3.文件名称无效:在设定文件名称时,可能文件名中带有尾随空格或尾随句点等无效名称,导致文件在打开时,系统会自动去除文件中的无效名称,从而导致文件设置不完整,卷标语法不正确。

解决方法:

1.在新建文件之前,可先用系统修复软件进行文件扫描和磁盘修复,以确保磁盘可正常存储文件。

2.如果自己的电脑是双系统运行,可先切换至其他系统,再运行文件。

3.可以利用反病毒查杀软件看自己新建的文件里是否有感染木马病毒,如果发现带有病毒,则需要立即进行木马清查,然后重启电脑再打开文件。

4.先找到文件夹所属磁盘的类型,然后右击鼠标,按照“磁盘属性”—“工具”—“查错”—“开始检查”—“磁盘检查选项”—“自动修改文件系统错误”—“扫描并尝试恢复坏扇区”的操作顺序,进行windows系统自带的纠错修复功能,即可恢复文件原状。

5.先把自己出错的文件直接复制粘贴到其他磁盘,然后把原来的磁盘进行格式化操作,接着再将复制过的文件又重新复制粘贴到原磁盘,最后重启电脑再次打开文件即可。

扩展资料:

Windows 中文件夹命名规则是: 

① 文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。 

② 文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号“.”分隔。 

③ 文件名和文件夹名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、( )、_、-、、’等组合而成。 

④ 可以有空格,可以有多于一个的圆点。 

⑤ 文件名或文件夹名中不能出现以下字符:\\、/、:、*、?、"、<、>、| 。 

⑥ 不区分英文字母大小写。



参考技术D 文件名、目录名或卷标语法不正确的解决方法

以前电脑曾经出现过每次打开文件夹都会跳出一个窗口
显示文件名、目录名或卷标语法不正确的信息
网上找了很多资料都没有很好的解决办法
因为原因都是跟我不一样的
很多都是因为文件系统格式转换引起的
而我这个错误出现的是莫名其妙
后来看到一个帖子说系统可能存在着"以设备名命名的文件夹拒绝服务漏洞"
什么意思呢?
windows系统有一个特点,就是在windows下无法以设备名来命名文件或文件夹,这些设备名有:aux,com1,com2,prn,con,nul。
但win2000(win xp)有个漏洞,可以让这一不可能成为可能。
如果你的操作系统是win2000或win xp,那么运行cmd.exe,用"md c:\con\\"命令可以建立一个和设备名con相同的目录。
而当你试图去删除这个目录的时候,就会出现刚才那个"文件名、目录名或卷标语法不正确"的窗口
虽然这个和偶电脑的症状不是很一致
不过还是提醒了我
把所有文件都显示后,在桌面上看到了一个隐藏的文件夹也叫桌面=_=,抱着怀疑的态度把这个文件夹给删了
果然系统恢复正常了 !

当然引起这个症状的原因可能有很多,我的那种方法不一定能解决问题.但是如果遇到这种情况的话,可以试一下,看看有没有什么特殊的文件夹:),比如一些和系统的设备名称相同的或者像我电脑出现的那种叫桌面的文件夹什么的
有的话删掉试试看.当然不要彻底删除,放到回收站就行了,免得你丢了什么重要资料来找偶>_<.

好了,偶要说的就这么多了,遇到问题还是要靠多想多找
这里替baidu做个广告,有问题,baidu一下

无法删除 ??: 文件名,目录名或卷标语法不正确
一、常规解决办法:

1.注消或重启电脑,然后再试着删除。

2.进入“安全模式删除”。

3.在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除。

4.如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹。

5.在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件。

6.如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹。

二、高级解决方案:

1.磁盘错误
运行磁盘扫描,并扫描文件所在分区,扫描前确定已选上修复文件和坏扇区,全面扫描所有选项,扫描后再删除文件。

2.预读机制:
某些媒体播放中断或正在预览时会造成无法删除。在“运行”框中输入:REGSVR32 /U SHMEDIA.DLL,注销掉预读功能。或删除注册表中下面这个键值:[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\\InProcServer32]。

3.防火墙:
由于反病毒软件在查毒时会占用正在检查的文件,从而导致执行删除时提示文件正在使用,这时可试着暂时关闭它的即时监控程序,或许可以解决。

4.OFFice、WPS系列软件:
OFFice的非法关闭也会造成文件无法删除或改名。重新运行该程序,然后正常关闭,再删除文件。

5.借助WinRAR:
右击要删除的文件夹,选择“添加到压缩文件”。在弹出的对话框中选中“压缩后删除源文件,”随便写个压缩包名,点确定。

6.权限问题:
如果是2000和xp系统,请先确定是否有权限删除这个文件或文件夹。

7.可执行文件的删除:
如果可执行文件的映像或程序所调用的DLL动态链接库文件还在内存中未释放,删除时就会提示文件正在使用,解决方法是删除系统的页面文件,Win98中是Win386.SWP,Win2000/XP是pagefile.sys。注意要在DOS下删除。

8.文件粉碎法:
使用文件粉碎机,如File Pulverizer,可以彻底删除一些顽固文件。

三、制作一个无法删除的“文件保险箱”

文件夹无法删除,未必就是不好的事情,如果把一些重要的文件放在这个目录中,不就可以避免误删了吗?一个文件名只包含空格的文件夹在Windows中是不允许创建和删除的,但在DOS下却可以创建文件名包含\的文件夹。

在我们使用Windows的过程中,会遇到各种各样的问题。即使是最简单的删除文件也可能遇到麻烦,要么系统提示“文件正在被另一个人或程序使用”,要么就是报告“访问被拒绝”……如果你也遇到过这种情况,不妨看看本文。

原因一:文件正在使用中
在删除文件时,经常会遇到的一个问题是,文件正在使用,无法删除。如果试图删除以独占访问而不是以共享访问方式打开,并且正在使用中的文件时,系统就会出现错误提示:“无法删除xxx:文件正在被另一个人或程序使用”。而另一种情况则是,能够使用删除命令删除文件,但在打开文件的进程释放该文件之前,文件实际上并未删除。
要解决上述问题,需要确定拥有文件打开句柄的进程,然后关闭此进程。在以前的Windows中,我们可以使用资源工具包的Oh.exe。但在XP中,安装好的Support
Tools却不带Oh.exe。不过,XP提供了一个新的Openfiles.exe命令行工具,它能够报告进程打开的各个文件。与Oh.exe相似,Openfiles.exe也要求打开系统内核监视,这会消耗一些内存,并降低系统操作的性能。打开系统监视的命令是“Openfiles
/local
on”,它会启用系统全局标志“维护对象列表”,需重新启动系统才能生效。重新启动系统后,在命令提示符下执行不带参数的“Openfiles”,即可看到各个进程打开文件的清单。

原因二:文件系统损坏
磁盘上的坏区、其他硬件故障或者软件错误都可能会损坏文件系统,使文件出现问题而无法删除。典型操作失败的方式可能各不相同,当检测到文件系统损坏时,通常会收到一条提示运行Chkdsk的信息。
如果遇到这种情况,可以在磁盘卷上运行Chkdsk实用工具以纠正任何存在的错误。根据损坏的性质,Chkdsk也许能够恢复文件数据,也许无法恢复,但Chkdsk可以使文件系统返回到一种在内部一致的状态。有关Chkdsk实用工具的命令及参数,可以在命令提示符下执行“Chkdsk
/?”查阅。
原因三:文件使用了存取控制列表
如果某个文件使用了存取控制列表(Access Control
List,简称ACL),而操作者又没有相应的权限,那么删除文件时就可能出现“访问被拒绝”的提示。

通常情况下,管理员具有取得任何文件所有权的隐含能力,文件所有者也具有修改文件权限的隐含能力。不过,这些默认的权限是可以被修改的。
要解决因ACL导致文件无法删除的问题,就必须以具有相应权限的用户身份登录,或者是赋予自己删除文件的权限,然后才能删除文件。要注意的是,操作者必须拥有这些文件的所有权才能更改权限。如果是因为文件使用了不规范的ACL而不能使用某些安全工具显示或修改其权限时,可以尝试使用命令行工具Cacls.exe进行修改。

原因四:文件名使用了一个保留名称
众所周知,像AUX、LPT1这样的名称是为旧式DOS设备保留的。为了向后兼容,在Windows中不允许使用这些文件名,也不能使用典型的Win32文件调用来创建它们。反之,如果文件名是Win32命名空间中的一个保留名称,则同样可能无法删除此文件。
要解决此类问题,可以在Linux或其他非Windows的操作系统下重命名或删除该文件。另外,如果能够使用特定的语法指定到该文件的路径,也可以使用一些内置的命令绕过典型的Win32保留名称检查。例如,在Windows
XP中使用以下命令,可以删除名为“lpt1”的文件(Del命令后面加上“?”来避免Windows检查文件名的合法性):
Del [URL=]?c:[/URL]文件路径lpt1

原因五:无效的文件名称
如果文件名中包括一个无效名称,例如文件名有一个尾随空格,或一个尾随句点,或者文件名仅由一个空格组成,同样可能无法删除该文件。值得一提的是,如果使用典型的Win32语法打开名称中有尾随空格或尾随句点的文件,则尾随空格或句点在打开实际文件之前会被去掉。因此,如果在同一个文件夹中有两个分别名为“File.txt”和“File.txt
”的文件(注意第二个文件名后面的空格),当使用标准Win32调用打开第二个文件时,实际上会打开第一个文件。同样,如果文件的名称仅是“
”(一个空格字符),当尝试使用标准Win32调用打开它时,实际上会打开该文件的父文件夹。在此情况下,如果尝试更改这些文件上的安全设置,就有可能会意外更改其他文件上的设置。
与解决文件名使用保留名称的方法类似,可以使用一种适当的内部语法删除此文件。例如要删除包含尾随空格的文件,可以使用如下命令:
Del [URL=]?[/URL] c:文件路径(尾随空格的文件名)

原因六:文件路径太深无法访问
文件位于比最大路径字符数(MAX_PATH)更深的路径中,可能导致文件无法访问,当然,这种情况较为少见。如果路径深的原因是文件夹名称太长,最简便的解决方案是使用自动生成的8.3名称访问该文件。如果8.3路径也太长,可以从根文件夹开始重命名文件夹,缩短它们的名称,以使目标文件的路径深度不超过MAX_PATH。若是文件的深度超过128个文件夹,可以通过创建一个网络共享,使其位于文件夹树中尽可能深的位置,然后通过访问此共享来访问文件。
一般情况下,如果遇到因文件路径太深无法访问的情况,可以通过使用创建文件的软件来管理这些文件。也就是说,如果有一个程序,它可以创建超过MAX_PATH的文件,则我们也可以使用该程序来管理这些文件。此外,对于通过网络共享创建的深层次结构的文件也可以通过使用同一共享来进行删除。
前面介绍了Windows系统中文件或文件夹无法删除的几种原因以及解决的方法。在某些情况下,可能还会遇到上述各种原因的不同组合,使得删除文件的过程更加复杂。这就需要读者能够举一反三,灵活应用微软提供的各种实用工具进行解决了。
Windows XP中删除AVI文件的问题
很多朋友可能会遇到Windows XP中无法删除AVI文件的问题,这主要是由于Windows
XP视频预览功能的Bug所导致的。你可以尝试用以下方法进行删除。

方法一 在运行命令框中输入“Regs-vr32/u
Shmedia.dll”并回车,卸去Windows
XP的视频文件预览功能。当以后想要恢复视频预览功能时,再使用“Regsvr32Shmedia.dll”命令重新注册即可。

方法二
先打开命令提示符窗口,然后在任务管理器中结束Explorer进程,再从命令提示符窗口中切换到保存视频文件的文件夹下,用Del命令删除文件。

方法三
如果安装了双系统,可以从另一个系统,如Win98下进行删除。本回答被提问者和网友采纳

`gsutil cp` 命令抛出“OSError:文件名、目录名或卷标语法不正确”

【中文标题】`gsutil cp` 命令抛出“OSError:文件名、目录名或卷标语法不正确”【英文标题】:`gsutil cp` command throwing "OSError: The filename, directory name, or volume label syntax is incorrect" 【发布时间】:2020-10-13 22:57:22 【问题描述】:

我已按照 Google Cloud 说明执行 gsutil install guide,并且已将 updated GCloud components 更新到最新版本。我刚刚安装并配置了 GCloud 以使用我的凭据和项目。首先,我使用以下命令从我的 Firestore 中导出我需要的单个集合:

gcloud firestore export gs://my-project-id.appspot.com --collection-ids=theCollectionINeed

现在我看到这个导出作为文件夹在我的 Firebase 控制台 Storage 部分中。作为项目所有者,我想将此导出到我的本地系统。为此,我认为我需要使用 gsutil 才能复制它。阅读download the object from your bucket的说明,我尝试使用以下命令,但出现此错误:

$ gsutil cp -r gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 .
Copying gs://lucky-level-dev-6ac34.appspot.com/2020-05-22T02:01:06_86154/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: The filename, directory name, or volume label syntax is incorrect.

我在 Windows 10 环境中使用 cmd 运行此命令。 我希望能够将此文件夹从云端下载到我的本地驱动器。

更新

之后,我尝试按照建议更改存储桶文件夹(对象前缀):

gsutil mv gs://my-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://my-project-id.appspot.com/2020-06-23_someFolder

但现在再次尝试会引发一个新错误:

gsutil cp -r gs://my-project-id.appspot.com/2020-05-22_someFolder .
Copying gs://my-project-id.appspot.com/2020-05-22_someFolder/2020-05-22T02:01:06_86154.overall_export_metadata...
OSError: Invalid argument.9.0 B]

当然我也需要更改文件名?

【问题讨论】:

我怀疑问题是 GCS 对象前缀包含冒号,这些可能会导致 Windows 出现问题。我没有窗户。请尝试gsutil mv gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://m-project-id.appspot.com/X 重命名对象,然后再尝试gsutil cp -r gs://m-project-id.appspot.com/X . @DazWilkin 感谢您的建议。现在我已经超越了那个错误;可悲的是,现在我得到了以下信息:OSError: Invalid argument.9.0 B] 我会更新我的问题。有什么想法吗? @DazWilkin 我还必须重命名名称中还包含冒号的内部文件。再次感谢! 您可能希望向 Google 提交错误。该命令应该在受支持的操作系统上运行,并且显然不适用于 Windows。 issuetracker.google.com 【参考方案1】:

在执行 cp -r gs:/bucket_name/folder .时,Gsutil 会尝试在当前位置创建一个名称为“bucket_name”的文件夹,Windows doesn't allow 的文件夹名称中包含一些特殊字符,包括“:”

您可以使用@DazWilkin 建议的gsutil mv gs://m-project-id.appspot.com/2020-05-22T02:01:06_86154 gs://m-project-id.appspot.com/new_folder_name 命令重命名存储桶文件夹(对象前缀),然后使用新文件夹名称重试。

还要检查目录结构中的所有文件名是否不包含“:”字符或任何其他 special one。

【讨论】:

感谢您的建议。这似乎确实是问题所在,听起来很合乎逻辑,但现在我得到了以下信息:OSError: Invalid argument.9.0 B] 有什么想法吗? 我还不得不重命名也有冒号的内部文件,问题就解决了。如果有人不阅读 cmets,请补充您的答案以获得完整的答案。谢谢! 好的,我很高兴这已经解决了!我已经更新了我的答案。【参考方案2】:

(问题作者发布的解决方案将其放在答案部分)

我所要做的就是重命名名称中也包含冒号的内部文件。重命名解决了这个问题!

【讨论】:

真的认为这本身就回答了这个问题吗?不要只是过度温和...... @Metafaniel:它是(部分)答案材料,所以它需要进入答案空间。如果您认为它是微不足道的,我很乐意将其删除,或者如果答案不太可能对未来的读者有用,则将问题关闭为 Typo/Unrepro,但我认为该材料不属于该问题。或者,您可以自己发布此答案(减去归属声明)作为自我答案,我可以删除 CW 副本。 最后,如果您想获得第二意见,可以在 Meta Stack Overflow 上提问。【参考方案3】:

如果是gcloud firestore export,可以通过指定目录来避免该问题:

# BAD this will auto generate a directory windows doesnt like
gcloud firestore export gs://my-bucket

# GOOD specify a directory
gcloud firestore export gs://my-bucket/firestore-backup

# copy as usual
gsutil -m cp -r "gs://my-bucket/firestore-backup" .

【讨论】:

以上是关于文件名、目录名或卷标语法不正确的主要内容,如果未能解决你的问题,请参考以下文章

命令提示符提示文件名,目录或卷标语法不正确怎么办

文件名,目录名或卷标语法不正确是啥原因

文件名,目录名或卷标语法不正确,错误代码:0x8007007B

创建UmiJS项目时报错--文件名目录名或卷标语法不正确

创建UmiJS项目时报错--文件名目录名或卷标语法不正确

win8文件名目录名或卷标语法不正确怎么办?