@Override
	public ByHandleFileInformation onGetFileInformation(String arg0,
			DokanFileInfo arg1) throws DokanOperationException {
		EntityInfo inf;
		if (mapWinToUnixPath(arg0).equals(INITIALFILENAME))
		{
			return new ByHandleFileInformation(net.decasdev.dokan.FileAttribute.FILE_ATTRIBUTE_NORMAL, 0, 0, 0, 0, 0, 1, 0);
		}
		try {
			if (arg0.endsWith("*"))
				arg0 = arg0.substring(0, arg0.length() - 1);
			inf = fileSystem.getFileMetaData(mapWinToUnixPath(arg0));
		} catch (PathNotFoundException e) {
			throw new DokanOperationException(net.decasdev.dokan.WinError.ERROR_PATH_NOT_FOUND);
		} catch (Exception e)
		{
			e.printStackTrace();
			return null;
		}
		
		
		if (FileInfo.class.isInstance(inf)) {
			FileInfo cinfo = (FileInfo)inf;
			return new ByHandleFileInformation(net.decasdev.dokan.FileAttribute.FILE_ATTRIBUTE_NORMAL, inf.getCreationTime(), inf.getLastAccessTime(), inf.getLastModificationTime(), 0, cinfo.getFileSize(), 1, 0);
		}
		if (DirectoryInfo.class.isInstance(inf)) {
			return new ByHandleFileInformation(net.decasdev.dokan.FileAttribute.FILE_ATTRIBUTE_DIRECTORY, inf.getCreationTime(), inf.getLastAccessTime(), inf.getLastModificationTime(), 0, 0, 1, 0);
		}
		throw new DokanOperationException(net.decasdev.dokan.WinError.ERROR_BAD_PATHNAME); 
	}