如何在Java中取消Windows文件名的转换?

如何在Java中取消Windows文件名的转换?,第1张

概述如何在Java中取消Windows文件名转换

从Java中,我将一个可执行文件解压到使用file.createTempfile()指定的位置。 当我尝试运行我的可执行文件时,我的程序在尝试读取第一行输出时挂起。

我发现,如果我尝试从另一个程序运行相同的解压缩的可执行文件,它将工作,如果我指定目录为C: documents和Settings 用户名 Local Settings Temp prog.exe。 但是,如果我指定目录为C: DOCUME〜1 USERNA〜1 LOCALS〜1 Temp prog.exe我得到挂起。

有没有办法在我的程序unmangle代字号文件名,所以我可以指定一个目录名称,将工作?

(因为我总是喜欢解决语言和APIdevise问题,所以为什么Java file.createTempfile()和java.io.tmpdir必须评估为损坏的文件名?)

强制丢包

在nm命令的输出中,“@@”符号是什么意思?

在linux上篡改C ++名称时,什么是符号?

防止在C(不是C ++)中使用MinGW进行名称修改以进行dynamic符号search

如何在linux中使用Google Protobufs来确保相同的输出文件(* .o)

如何从装饰名称中取消名字?

您可以使用getCanonicalPath()来获取展开的路径。 例如:

try { file file = file.createTempfile("abc",null); System.out.println(file.getPath()); System.out.println(file.getCanonicalPath()); } catch (IOException e) {}

生产…

C:DOCUME~1USERNA~1LOCALS~1Tempabc49634.tmp C:documents and SettingsusernameLocal Settingstempabc49634.tmp

我在XP上测试了这个,但是假设它在其他的windows *** 作系统上也是一样的。

请参阅@ raviaw对第二个问题的回答。

哇,我从来没有见过。 事实是,环境变量%TEMP%返回一个错位的名字(这是从我的电脑):

TEMP = C: DOCUME〜1 raviw LOCALS〜1个温度

TMP = C: DOCUME〜1 raviw LOCALS〜1个温度

假设一个新创建的Java虚拟机使用环境变量来获取临时文件夹的位置,这不是虚拟机的错误,目录即将被损坏。

即使您尝试使用System.getenv()来获取临时文件夹,您仍然会遇到同样的问题。

我会确保:

问题不是由于你有一个名为“prog.exe”的目录(基于你的问题,我假设这一点)造成的。

如果该文件是“prog.exe”,如果它没有被其他程序使用(可能是杀毒软件)。

检查您的计算机是否理智(对于任何不是Web应用程序的应用程序来说,这将是一个非常严重的错误,并且需要临时文件)。

总结

以上是内存溢出为你收集整理的如何在Java中取消Windows文件名的转换?全部内容,希望文章能够帮你解决如何在Java中取消Windows文件名的转换?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1271117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存