запись Android на SDCard - PullRequest
       1

запись Android на SDCard

1 голос
/ 03 ноября 2011

Я не могу записать на SDCARD.Я не могу создать каталог или файл, чего мне не хватает У меня это есть в манифесте

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

И это в моем коде

btnSave.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View arg0) 
            {   
                // Create a directory; all ancestor directories must exist
                    boolean success = (new File("/sdcard/Methods/")).mkdirs();
                //create file   
                    try{
                    File myFile = new File("/sdcard/Methods/Method 1 Square.xml");
                    File file = myFile;
                        // Create file if it does not exist
                        boolean success1 = file.createNewFile();}   
                    catch (IOException e) 
                        {}
                //write to file
                    try {
                        BufferedWriter out = new BufferedWriter(new FileWriter("/sdcard/Methods/Method 1 Square.xml"));
                        out.write ("<?xml version=\"1.0\"?>");
                        out.write ("<?mso-application progid=\"Excel.Sheet\"?>");
                        out.write ("Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"");
                        out.close();
                    } // end try
                    catch (IOException e) 
                    {
                    } // end catch

            } // end public

        }); // end SAVE Button

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

1-я вещь:

Просто проверьте переменную 'success', действительно ли она возвращает true .

2-я вещь:

Поскольку вы жестко закодировали / sdcard, вместо этого я предлагаю вам получить каталог, используя: Environment.getExternalStorageDirectory(), потому что в некоторых устройствах корневым каталогом sd-карты является / mnt / sdcard , поэтому приведенный выше способ получения корневого каталога.

3-я вещь:

Сначала необходимо проверить, смонтирована ли SD-карта или нет.

Пример:

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdcard.getAbsolutePath() + "/dir/subdir");  // in your case, just give /Methods

dir.mkdirs();
File file = new File(dir, "filename");  // in your case, just give "Method 1 Square.xml"

FileOutputStream f = new FileOutputStream(file);
1 голос
/ 03 ноября 2011

Возможно, проблема в том, что каталоги в пути не существуют.С этим конструктором FileWriter, если файл не существует, он создается, но не включает каталоги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...