1

新しいファイルを作成しようとすると、エラー メッセージが表示されました。

コード:

try 
{
    File root = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
    Runtime.getRuntime().exec("chmod 777 " + root.getAbsolutePath());
    File myFile = new File(root,"createNew.txt");
    myFile.createNewFile();
}
catch(Exception e)
{
    Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show();
}

エラーメッセージ:

java.io.IOException: open failed: EACCES (Permission denied)

/mnt/sdcardとしての許可d---------

プログラムでアクセス許可を変更するにはどうすればよいですか?どのように解決しますか? アイデアを教えてください。

前もって感謝します。

この点に注意してください。

コマンドプロンプトでこのコードを使用すると、ファイルが正常に作成されました。そのコードは次のとおりです。

`chmod 777 /mnt/sdcard`
4

3 に答える 3

0
try {
    File filename = new File(Environment.getExternalStorageDirectory() +
                             "/yourfilename.txt");
    filename.createNewFile();
    FileWriter writer = new FileWriter(filename2); 
    writer.write("Your content");
    writer.flush(); 
    writer.close();
} catch (IOException e) {
    ...
}
于 2012-07-17T08:20:22.257 に答える
0

1-これを使用して、sdk ディレクトリを取得します。

Environment.getExternalStorageDirectory().getAbsolutePath();      

2-または、ファイル パスに不正な文字 (空白など) が含まれている可能性があります。この場合は、それらを正当な等号文字に置き換える必要があります。たとえば、空白を「\」に置き換える必要があります
。 .exec()
http://www.coderanch.com/t/498450/java/java/exec-command-not-able-deal
複数のスペースを含む引数に対する Runtime.exec
Java でパスを結合する

于 2012-07-17T08:03:09.507 に答える
0

これを使用してファイルを作成します。

FileOutputStream fos= new FileOutputStream(outputPath);
//fos.write(...);
fos.close();

Java Doc が言うように:

This method is not generally useful. For creating temporary files, use  
`createTempFile(String, String)` instead. For reading/writing files, use 
FileInputStream, FileOutputStream, or RandomAccessFile, all of which can create 
files. 
于 2012-07-17T07:55:16.983 に答える