当前位置: 首页 > 面试题库 >

Windows和Linux目录名称中禁止使用什么字符?

齐昊焱
2023-03-14
问题内容

我知道/在Linux中是非法的,以下是Windows中的非法(我认为) * . " / \ [ ] : ; |
,

我还想念什么?

但是,我需要一份全面的指南,其中要考虑到双字节字符。链接到外部资源对我来说很好。

我首先需要使用可能包含禁止字符的名称在文件系统上创建目录,因此我计划将这些字符替换为下划线。然后,我需要将此目录及其内容写入zip文件(使用Java),因此,有关zip目录名称的任何其他建议将不胜感激。


问题答案:

禁止使用文件名字符的“综合指南”在Windows上不起作用,因为它保留了文件名和字符。是的,* " ?禁止像和这样的字符
,但是有无限多个名称仅由被禁止的有效字符组成。例如,空格和点是有效的文件名字符,但禁止仅由那些字符组成的名称。

Windows不会区分大小写字符,因此,A如果a已经存在一个命名的文件夹,则无法创建一个命名的文件夹。更糟的,似乎允许的名称,如PRNCON,以及许多其他名称,是保留的,不允许使用。Windows也有几个长度限制;如果将文件名移动到另一个文件夹,则在一个文件夹中有效的文件名可能变得无效。命名文件和文件夹的规则 在Microsoft文档中。

通常,您不能使用用户生成的文本来创建Windows目录名称。如果你想允许用户他们想要什么名字,你必须创建安全的名字,如AABA2等,存储用户生成的名称和应用程序数据文件的路径等价物,并在你的应用程序执行路径映射。

如果绝对必须允许用户生成的文件夹名称,则判断它们是否无效的唯一方法是捕获异常并假定名称无效。即使这样也充满了危险,因为拒绝访问,脱机驱动器和驱动器空间不足引发的异常与可以为无效名称引发的异常重叠。您正在打开一罐巨大的伤害。



 类似资料:
  • 问题内容: 我创建了一个类“ String”,并将其放置在“ java”包中[实际上,我想创建 java.lang 以查看classLoader将哪个类加载为 一旦将一个类加载到JVM中,就不会再次加载相同的类(我再说一遍,相同的类) 引用于oreilly]。但是后来那件事,为什么在运行此类时我得到 java.lang.SecurityException:禁止的包名称: java 出于安全原因,j

  • 问题内容: 我已经在python中编写了一个代码,该代码使用/在文件夹中创建特定文件,如果我想在Windows中使用该代码将无法正常工作,有没有一种方法可以在Windows和Linux中使用该代码。 在python中,我使用以下代码: 当我在Windows计算机中使用我的代码时,我的代码将无法工作。 在Linux和Windows中如何使用“ /”(目录分隔符)? 问题答案: 使用。范例:。 在您的

  • 我正在寻找一种方法,使列名和数据目录名称从一个列表的数据目录到一个单一的数据目录。它们有不等长的列。做这件事最好的方法是什么? 预期产出:

  • 如何在Android Studio 0.9.9中更改项目根目录的名称。我在这里阅读了其他解决方案,但对我来说没有任何效果。我可以更改/重构包名称,但不能更改根目录的名称。我在这里找到了另一个解决方案,即更改文件中的名称,但没有成功。更改名称后,我尝试了清理、重建等,但没有任何东西反映Android Studio中的更改。“PROJECT NAME/ROOT DIRECTORY NAME”没有REF

  • 问题内容: Linux环境变量名称中允许使用哪些字符?我对手册页和网络的粗略搜索只产生了有关如何使用变量的信息,但没有产生允许使用的名称。 我有一个Java程序,它需要一个包含点的已定义环境变量,例如。使用Windows,我可以设置该变量,但是我没有在Linux中设置它的运气(在SuSE和Ubuntu中尝试过)。甚至允许使用该变量名吗? 问题答案: 来自公开组: 这些字符串的格式为name = v

  • 我想根据图像所在文件夹的部分名称重命名图像,并遍历图像。我正在使用os.walk,我可以重命名文件夹中的所有图像,但无法确定如何使用文件夹名称中第一个连字符左侧的字母作为图像名称的一部分。 文件夹名称: 文件夹中的当前图像名称: 要更改为显示如下内容: 我所拥有的是这个,但我不知道为什么我不能按连字符分割文件名: