Java 文件中的mkdir(0)和文件utils中的forceMkdir()都无法创建名称包含unicode字符的文件夹。知道吗?
我想在Java 文件中的mkdir(0)和文件utils中的forceMkdir()都无法创建名称包含unicode字符的文件夹。知道吗?,java,matlab,file-io,unicode,Java,Matlab,File Io,Unicode,我想在Matlabcode中使用Java创建一个名为unicode字符的文件夹。我尝试了Java.io.File的mkdir()和forceMKdir()org.apache.commons.io.FileUtils的。但是,创建文件夹时,unicode字符被替换为两个字符,这是它的UTF-8表示形式。有什么想法吗?下面是一个示例代码 feature('DefaultCharacterSet', 'UTF-8') u0_filename = 'é' curre_output_dir = jav
Matlab
code中使用Java
创建一个名为unicode
字符的文件夹。我尝试了Java.io.File
的mkdir()
和forceMKdir()org.apache.commons.io.FileUtils的
。但是,创建文件夹时,unicode字符被替换为两个字符,这是它的UTF-8表示形式。有什么想法吗?下面是一个示例代码
feature('DefaultCharacterSet', 'UTF-8')
u0_filename = 'é'
curre_output_dir = java.lang.String(root_meddir).concat(java.lang.String(relative_output_meddir).concat(u0_filename).concat(java.lang.String(prior.slash_symbol)))
test_dir1 = java.io.File(curre_output_dir)
使用mkdir()
:
使用mkdirs()
:
使用forceMkdir()
:
但是,所有人都创建了一个名为“é的文件夹,这是不正确的。文件系统是Ubuntu
谢谢
编辑:
按照fge的建议,要使用文件.createDirectory()
,我遵循以下步骤:
将变量MATLAB_JAVA设置为JAVA 7 JRE的路径:
启动Matlab,检查Java版本:
但是,这些方法似乎无法正常工作:
所以我在回答5月9日的编辑
代码在该点不起作用的原因是,正如错误消息所说,提供了错误的签名。当方法需要Path对象时,您正在向该方法传递字符串
现在,本教程演示了创建路径对象的三种不同方法。我将进行总结,因为我们讨厌链接
Path Path=FileSystems.getDefault().getPath(“test”);
似乎可以做您想要做的事情
Path Path=Path.get(“test”);
在您的情况下也可以使用,因为它是项目#1的快捷方式
File f=new File(“test”);Path=f.toPath();
如果您的底层JVM是Java 7,请改用文件.createDirectory()
;另外,请尝试查看JVM中文件.encoding
设置为什么。谢谢。您是否可以提供一个关于如何使用文件.createDirectory()
的示例代码?我不懂Matlab,所以我只能提供一个示例Java代码;)谢谢。您是否可以用Matlab的Java语法重写其中一种方法?
test_dir1.mkdir()
test_dir1.mkdirs()
javaMethod('forceMkdir', 'org.apache.commons.io.FileUtils', test_dir1)
$ export MATLAB_JAVA=/usr/lib/jvm/java-7/jre/
>> version -java
Java 1.7.0_55-b13 with Java HotSpot(TM) 64-Bit Server VM mixed mode
>> java.nio.file.Files.createDirectory('test')
No method 'createDirectory' with matching signature found for class 'java.nio.file.Files'.