无法使用JAVA激活带有'\'字符的String

gow*_*amy 2 java split substring directory-structure

我正在尝试使用JAVA程序在Windows系统中重新创建文件夹结构.我在我的java程序中从另一个系统获取目标文件路径作为String参数,我应该使用文件路径字符串来识别每个级别的文件夹名称.当与字符串中的其他合法字符一起使用时,'\'(Windows系统中的文件路径字符串的一部分)表现不同.它与字符串中的以下字符组合并产生不同的结果(生成不同的字符,因为\ 00的ascii值与\分别不同,0分别不同).

String WindowsFilePath="drivename\folderName1\00000innerFolderName\03thefileName.fileExtension";
Run Code Online (Sandbox Code Playgroud)

可以使用JAVA代码来激活此String

"drivename","folderName1","00000innerFolderName","03thefileName.fileExtension"
Run Code Online (Sandbox Code Playgroud)

有关此问题的根本原因的其他信息:

我有一个旧的目录结构,有人在文件系统中创建了名为'001thImageFolder''neneImageFolder'等文件夹.现在,如果我得到一个文件,它是一个以上述方式在"\"自带的文件路径得到了附加有文件夹名称的第一个或第一个和第二个字符,就会自动转换为转义序列命名的目录中的文件路径.我想消除这个转义序列转换.

Boh*_*ian 5

字符串中没有反斜杠.

只有转义序列:

  • \f =换页符
  • \0 = nul char(十六进制零)

但是,如果你确实有反斜杠:

String parts = str.split("\\\\");
Run Code Online (Sandbox Code Playgroud)

注意双倍反斜杠; 加倍一次在字符串文字中创建一个反斜杠字符,并再次加倍以在正则表达式中创建一个文字反斜杠.


我认为你的意图是字符串文字是:

String windowsFilePath ="drivename\\folderName1\\00000innerFolderName\\03thefileName.fileExtension";
Run Code Online (Sandbox Code Playgroud)