package com.openfarmanager.android.filesystem; import com.openfarmanager.android.App; import com.openfarmanager.android.model.Bookmark; import com.openfarmanager.android.utils.Extensions; import com.openfarmanager.android.utils.FileUtilsExt; import java.util.ArrayList; import java.util.List; import jcifs.smb.SmbException; /** * Represents SMB file. * * @author Vlad Namashko */ public class SmbFile implements FileProxy { private String mName; private boolean mIsDirectory; private long mSize; private long mLastModified; private String mFullPath; private String mParentPath; public SmbFile(jcifs.smb.SmbFile smbFile, String hostName) throws SmbException { mName = smbFile.getName(); mIsDirectory = smbFile.isDirectory(); mSize = smbFile.length(); mLastModified = smbFile.lastModified(); mFullPath = smbFile.getPath(); String prefix = "smb://" + hostName; if (mFullPath.startsWith(prefix)) { mFullPath = mFullPath.substring(prefix.length()); } mParentPath = smbFile.getParent(); if (mParentPath.startsWith(prefix)) { mParentPath = mParentPath.substring(prefix.length()); } } public SmbFile(String path) { path = FileUtilsExt.removeLastSeparator(path); mName = FileUtilsExt.getFileName(path); mIsDirectory = true; mSize = 0; mLastModified = System.currentTimeMillis(); mFullPath = path; mParentPath = FileUtilsExt.getParentPath(path); } @Override public String getId() { return getFullPath(); } @Override public String getName() { return mName; } @Override public boolean isDirectory() { return mIsDirectory; } @Override public long getSize() { return mSize; } @Override public long lastModifiedDate() { return mLastModified; } @Override public List getChildren() { return new ArrayList(); } @Override public String getFullPath() { return mFullPath; } @Override public String getFullPathRaw() { return mFullPath; } @Override public String getParentPath() { return mParentPath; } @Override public boolean isUpNavigator() { return false; } @Override public boolean isRoot() { return getName().equals("..") && Extensions.isNullOrEmpty(mParentPath); } @Override public boolean isVirtualDirectory() { return false; } @Override public boolean isBookmark() { return false; } @Override public Bookmark getBookmark() { return null; } @Override public String getMimeType() { return null; } }