Java Jackrabbit WebDAV同步示例?
我正在使用该库与使用webdav协议的云存储进行通信。我需要一种方法来列出特定目录中的所有文件,并获取上次修改的属性,但我似乎找不到任何关于此的工作示例 我基本上需要代码将本地目录中的文件与webdav url同步Java Jackrabbit WebDAV同步示例?,java,apache,webdav,jackrabbit,Java,Apache,Webdav,Jackrabbit,我正在使用该库与使用webdav协议的云存储进行通信。我需要一种方法来列出特定目录中的所有文件,并获取上次修改的属性,但我似乎找不到任何关于此的工作示例 我基本上需要代码将本地目录中的文件与webdav url同步 import java.io.File; import java.io.FileInputStream; import org.apache.commons.httpclient.Credentials; import org.apache.commons.httpclient.H
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.jackrabbit.webdav.client.methods.DavMethod;
import org.apache.jackrabbit.webdav.client.methods.MkColMethod;
import org.apache.jackrabbit.webdav.client.methods.PutMethod;
public class WebDavClient
{
private String resourceUrl;
private HttpClient client;
private Credentials credentials;
private DavMethod method;
public WebDavClient(String resourceUrl, String username, String password)
throws Exception
{
this.resourceUrl = resourceUrl;
client = new HttpClient();
credentials = new UsernamePasswordCredentials(username, password);
client.getState().setCredentials(AuthScope.ANY, credentials);
}
public int upload(String fileToUpload) throws Exception
{
method = new PutMethod(getUpdatedWebDavPath(fileToUpload));
RequestEntity requestEntity = new InputStreamRequestEntity(
new FileInputStream(fileToUpload));
((PutMethod) method).setRequestEntity(requestEntity);
client.executeMethod(method);
return method.getStatusCode();
}
public int createFolder(String folder) throws Exception
{
method = new MkColMethod(getUpdatedWebDavPath(folder));
client.executeMethod(method);
return method.getStatusCode();
}
private String getUpdatedWebDavPath(String file)
{
// Make sure file names do not contain spaces
return resourceUrl + "/" + new File(file).getName().replace(" ", "");
}
}
将文件Test.txt上载到备份文件夹的使用示例:
下面列出了一些可能会有所帮助的不同方法:
请帮帮我,我在这上面挣扎了这么久 查看欧盟门户网站上Krusche和Partner提供的AMES WebDAV客户端代码。它是根据GPL授权的,因此它可能适合您的目的 它对我来说很有用,但要访问例如win32lastdimeter,我需要获取自定义名称空间,例如
private static final Namespace WIN32_NAMESPACE = Namespace.getNamespace("Z2", "urn:schemas-microsoft-com:");
并从属性中检索自定义属性Win32LastModifiedTime
/*
* Win32LastModifiedTime
*/
String win32lastmodifiedtime = null;
DavProperty<?> Win32LastModifiedTime = properties.get("Win32LastModifiedTime", WIN32_NAMESPACE);
if ((Win32LastModifiedTime != null) && (Win32LastModifiedTime.getValue() != null)) win32lastmodifiedtime = Win32LastModifiedTime.getValue().toString();
/*
*Win32LastModifiedTime
*/
字符串win32lastmodifiedtime=null;
DavProperty Win32LastModifiedTime=properties.get(“Win32LastModifiedTime”,WIN32_命名空间);
如果((Win32LastModifiedTime!=null)&&(Win32LastModifiedTime.getValue()!=null))Win32LastModifiedTime=Win32LastModifiedTime.getValue().toString();
/*
* Win32LastModifiedTime
*/
String win32lastmodifiedtime = null;
DavProperty<?> Win32LastModifiedTime = properties.get("Win32LastModifiedTime", WIN32_NAMESPACE);
if ((Win32LastModifiedTime != null) && (Win32LastModifiedTime.getValue() != null)) win32lastmodifiedtime = Win32LastModifiedTime.getValue().toString();