Как добавить новый файл в папку Dropbox

Я пытаюсь загрузить НОВЫЙ файл .txt в папку Dropbox из своего приложения для Android. Что бы я ни делал, он продолжает говорить, что файл или каталог не существует. Что я здесь делаю неправильно?

Когда пользователь нажимает кнопку в моем представлении, я хотел бы создать новый файл в своей папке Dropbox. Папка Dropbox, ее путь: Dropbox\Apps\myApp В каталоге myApp я хотел бы добавить новый текстовый файл, например, с текстом «это мой новый файл». в этом.

 public  void fileButtonClick(View v){
        FileInputStream inputStream = null;
         try {
             File file = new File("/Apps/Finance+");
             inputStream = new FileInputStream(file);
             Entry newEntry = mDBApi.putFile("/file.txt", inputStream,
                     file.length(), null, null);
         } catch (Exception e) {
             System.out.println("Something went wrong: " + e);
         } finally {
             if (inputStream != null) {
                 try {
                     inputStream.close();
                 } catch (IOException e) {}
             }
         }
    }

Может ли кто-нибудь сказать мне, что я делаю неправильно и как найти правильный путь/опцию для создания нового файла?

Спасибо, Йенте.


person Yenthe    schedule 26.10.2013    source источник
comment
Как вы создаете mDBApi? Вы используете папку Sandbox или Dropbox в качестве корня?   -  person vijayst    schedule 28.10.2013
comment
Как этот частный DropboxAPI‹AndroidAuthSession› mDBApi;   -  person Yenthe    schedule 28.10.2013
comment
Если вы используете приложение из папки приложения, вам не нужно указывать /Apps/{appfoldername} вручную. Простое использование / автоматически станет корнем папки вашего приложения. Кроме того, похоже, что ваш код не работает, но вы не опубликовали сообщение об ошибке, которое получаете. Это поможет нам выявить проблему. Наконец, я рекомендую полностью изучить руководство, если вы еще этого не сделали: dropbox. com/developers/core/start/android   -  person Greg    schedule 29.10.2013
comment
Хорошо, я изменил папку, как вы сказали, на /. Кроме того, я следовал всему руководству, но, к сожалению, у меня не получается все запустить и запустить. Это принтскрин моей функции и ошибки (которая удивительно мала). imgur.com/IivgJOV Спасибо за ответы и помощь! Редактировать: ошибка также говорит, что открытие не удалось, что нормально, потому что файл еще не существует, но я не знаю, как сказать, что он должен создать файл.   -  person Yenthe    schedule 29.10.2013
comment
@ Грег, ты хоть представляешь, что не так? Я до сих пор застрял на этом :с   -  person Yenthe    schedule 31.10.2013
comment
Мой комментарий был направлен только на удаленный путь, предоставленный API Dropbox. Похоже, вы исправили это, но текущая проблема, скорее всего, связана с тем, что вы пытаетесь открыть несуществующий локальный файл. (новый файл(/Apps/Finance+);) Убедитесь, что вы указали путь к существующему локальному файлу.   -  person Greg    schedule 31.10.2013
comment
В том-то и дело, что файла не существует, а я хочу создать НОВЫЙ файл :s @Greg   -  person Yenthe    schedule 31.10.2013
comment
Тогда может помочь что-то вроде этого: stackoverflow.com/questions/2885173/   -  person Greg    schedule 31.10.2013


Ответы (1)


Я думаю, проблема в том, что вы пытаетесь синхронизировать несуществующий файл. putFile используется для уже созданных файлов. Попробуйте сначала создать файл макета, а затем попробуйте свой код, и он должен работать, поместите следующий код, скажем, onCreate:

filename="testfile"
writer = new FileWriter(filename);
               writer.append("This is some random text I write to test this application");
                writer.flush();
                writer.close();

Тогда вы можете попробовать:

File file = new File(filename);
                FileInputStream inputStream = null;
                try {
                    inputStream = new FileInputStream(file);
                    DropboxAPI.Entry response = null;
                    try {
                         response = mDBApi.putFile("/someother-file.txt", inputStream,
                            file.length(), null, null);
                } catch (DropboxException e) {
                    e.printStackTrace();
                }
                Log.i("DbExampleLog", "The uploaded file's rev is: " + response.rev);


            } catch (FileNotFoundException e) {
                e.printStackTrace();
person Juli    schedule 28.06.2015