Хотите создать файл, каталог создан вместо! - PullRequest
0 голосов
/ 12 апреля 2011

Я использую этот код для создания файла в корне SDCard, однако у меня есть каталог, созданный вместо «fileDir + fileName»!

File file = new File(sdCard.getAbsolutePath(), fileDir+fileName);
    if (!file.mkdirs()) {

        Log.d("ERROR", "Create dir in sdcard failed");

        return;
    }
        OutputStream out = new FileOutputStream(file);
..............................

Спасибо за вашу помощь.

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

file.mkdirs () создает каталог, а не файл [Ref: http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#mkdir(). Это код, который создает каталог.Вы должны использовать код примерно так.

 String destination = currentdir + "test.txt"; 
        File fileCon = new File(destination); 
        if( ! fileCon.exists() ){ 
                fileCon.createNewFile(); 
            } 

Или попробуйте это,

     String destination = currentdir + "test.txt"; 


// Open output stream
            FileOutputStream fOut = new FileOutputStream(destination);

            fOut.write("Test".getBytes());

            // Close output stream
            fOut.flush();
            fOut.close();
1 голос
/ 12 апреля 2011

file.mkdirs () генерирует структуру каталогов в вашем предложении if. Вы могли бы проверить, если вы можете писать с помощью file.canWrite (), я полагаю.

Документация здесь .

Поскольку вы говорите, что он генерирует каталоги, он должен возвращать true, но важная часть здесь не показана:)

0 голосов
/ 12 апреля 2011

Если вы ожидаете, что file.mkdirs () создаст каталог для файла, вам нужно слегка настроить его для file.getParentFile (). Mkdirs ()

Конечно, это должно бытьзаключенный в предложение try / catch, в случае, если getParentFile () возвращает null

Надеюсь, это поможет,

Phil Lello

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