私のアプリケーションデータファイル(SQLiteと環境設定)をAndroidアプリケーションからDropboxアカウントにアップロードするためにDropbox V2 APIを使用しようとしています。私は正常にクライアントを起動することができますDropbox V2 uploadBuilder: "文字列 'path'がパターンと一致しません"
// Dropbox authentication
config = new DbxRequestConfig("dropbox/liikennevalot");
client = new DbxClientV2(config, ACCESS_TOKEN);
私のアプリは、私のユーザーの資格情報を一覧表示、リンクがアップしていると言う:
FullAccount account = client.users().getCurrentAccount();
私は私のアプリDropboxのディレクトリ内のファイルを一覧表示することができます。
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
Log.d("DROPBOX", metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
しかし、AndroidからDropboxアプリのルートディレクトリにアップロードしようとすると、
try (InputStream in = new FileInputStream(getExternalFilesDir(null) + "/" + "testi.txt")) {
FileMetadata metadata = client.files().uploadBuilder("")
.withMode(WriteMode.OVERWRITE)
.uploadAndFinish(in);
}
私はclient.files()。uploadBuilder( "")とのコード行を指す例外
java.lang.IllegalArgumentException: String 'path' does not match pattern
...例外スタックを調べる
を取得し、私はDropboxの中にいることを見つけますAPIのV2、クラスCommitInfoは、私はそのREGEXから任意の意味を作るのに十分なJavaのREGEXを知らないので、私は本当に私にこの例外を発生させているかわからない私は、この例外
} else if(!Pattern.matches("(/(.|[\\r\\n])*)|(ns:[0-9]+(/.*)?)", path)) {
throw new IllegalArgumentException("String \'path\' does not match pattern");
を与えているコンストラクタを持っています。 Dropbox API V2のドキュメントでは、Dropboxのアプリケーションのルートフォルダを表すので、私のclient.files()。uploadBuilder( "")...は完全な有効なコードでなければなりません。
私のアプリケーションのDropboxディレクトリの下にサブディレクトリ "test"を作成し、そのコードをclient.files()。uploadBuilder( "test")に変更しようとしましたが、毎回同じ例外が発生します。
誰でも私のコードで何が問題なのかを手がかりにするためにREGEXを解釈するのに役立つことができますか?
渡された文字列はパターンと一致しません。 –
良い質問ですが、回答がありません。私はuploadBuilder()メソッドに渡そうとしているものだけを知っています: ""と "test"が例外をトリガーしています。 Dropboxフォルダは普通のフォルダにすぎないので、文字列はWindowsのファイルパスになると思います。 – user3062660