如何解决java.io.File.isFile上的映射驱动器文件返回false,但是cmd是能够列出内容
创建映射驱动器[Z:],这是由命令
针对IBMi共享创建NET USE Z:\ IBMiMachine \ PROD / USER:USER1 *******
成功创建的驱动器。
然后试图列出所有文件(例如.PHP / .TXT / html的等)存在映射的驱动器下,通过简单的Java程序(使用Java 7 IO API,以及java类驻留在一个可运行的罐 myjar.jar )通过运行命令
Java的罐子myjar.jar Z:
因此注意到的 java.io.File.isFile()针对各种文件返回假:
File: 'Z:\ABC\20100709\Info.PHP'
isSymbolicLink -- false
isDirectory -- true
exists: true
is file: false
can read: true
can write: true
is hidden: false
File: 'Z:\ZYZ\20100607\intranet\Int.PHP'
isSymbolicLink -- false
isDirectory -- true
exists: true
is file: false
can read: true
can write: true
is hidden: false
还在 java.io.File.isDirectory()也说那些目录;但是,这些文件的内容可以看到命令由命令提示“CAT
我的Java程序代码是这样的:
private static int counter = 1;
public static void main(String[] args)
{
if (Utils.length(args) == 0)
{
print("Either passed argument was empty or null: " + Arrays.toString(args));
return;
}
print("Passed argument was: " + Arrays.toString(args));
doFile(new File(args[0]));
}
private static void doFile(File folder)
{
if (folder.isDirectory())
{
showFileAttributes1(folder);
showFileAttributes2(folder);
String files[] = folder.list();
int length = (files == null) ? 0 : files.length;
for (int i = 0; i < length; i++)
{
doFile(new File(folder,files[i]));
}
}
else if (folder.isFile())
{
showFileAttributes1(folder);
showFileAttributes2(folder);
}
}
private static void showFileAttributes1(File folder) throws IOException
{
print("");
print(" " + counter++ + ". File: '" + folder.getPath() + "' ---------");
Map<String,Object> fileAttributes = Files.readAttributes(folder.toPath(),"*");
Iterator<String> iterator = fileAttributes.keySet().iterator();
while (iterator.hasNext())
{
String key = iterator.next();
print(key + " -- " + fileAttributes.get(key));
}
}
private static void showFileAttributes2(File file) throws IOException
{
print("exists: " + file.exists());
print("is file: " + file.isFile());
print("can read: " + file.canRead());
print("can execute: " + file.canExecute());
print("can write: " + file.canWrite());
print("is hidden: " + file.isHidden());
Path filePath = Paths.get(file.getAbsolutePath());
//Is file readable
boolean isReadable = Files.isReadable(filePath);
print("Is file readable: " + isReadable);
//Is file writable
boolean isWritable = Files.isWritable(filePath);
print("Is file writable: " + isWritable);
//Is file executable
boolean isExecutable = Files.isExecutable(filePath);
print("Is file executable: " + isExecutable);
}
private static void print(String message)
{
System.out.println(message);
}
什么方法可采取克服爪哇问题?
的注意:我对那台机器/文件夹相同的完全访问权限,因为通过的 ROBOcopY 命令我能够映射驱动器的完整的文件夹结构复制到我的本地驱动器,然后该文件夹上没有 Java API 问题
ROBOcopY Z:C:\ * MYSOURCE .PHP / E /log:log.txt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。