ターミナルでやるんだって。。。
めんどくさいっすね。
フリーでかけれるアプリもあるみたいなんだけど、なんか不安定らしいのでメモ。
---------------------
ターミナルを起動
↓
zipcloak + 半角スペース(まだリターンを押しちゃダメ)
↓
パスをかけたいZIPファイルをターミナルにドラッグ&ドロップ
↓
Enter password:パスワードを入力(勝手に出て来る。カーソルが動かないので注意)
Verify password:もう一度パスワードを入力(勝手に出て来る。カーソルが動かないので注意)
---------------------
以上だそうで。。。
パスを設定したZIPファイルをダブルクリックしてみると。。。
「その操作は許可されてません」的なエラーが。。。
なにそれ。。。
色々検索してみるとパス付きのZIPファイルの解凍もターミナルでやるらしい。。。
めんどくさ。。。
ってことで
---------------------
ターミナルを起動
↓
unzip + 半角スペース
↓
パス付きのZIPをターミナルにドラック&ドロップ
↓
ファイル名 password:パスワードを入力(勝手に出て来る。カーソルが動かないので注意)
↓
デフォルトだとユーザー直下に解凍される
---------------------
以上めでたく完了!
いやいや。
めんどくさすぎる。。。
フリーのアプリ探そ。
2011年4月30日土曜日
2011年4月7日木曜日
android : リソースファイルのコピー(ローカルフォルダとsdcardの任意のフォルダにコピーする時の違い)
久々にmemo。
res/rawフォルダに格納されているリソースファイルをローカルフォルダ(/data/data/.../files/)にコピーする場合とsdcardにコピーする場合でちょっとだけ違いがあるみたい。
早く言ってよ。。。
これに気づくのにどんだけ時間かかったか。。。
ローカルにコピーするには
openFileOutput(コピーするファイル名, Context.MODE_PRIVATE);
SDcardにコピーするには
FileOutputStream(コピーするファイルのパス);
なんだそうで。。。
具体的には。。。
-----------------
package com.test.copy;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;
public class copytest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
copyRawFile(this, リソースID(例:R.raw.song01), 保存するファイル名(例:"song01.mp3"));
}
-----------------
ここまでは一緒。
ローカルの場合の続き
-----------------
/**
* リソースをローカルフォルダにコピー。
*
* @param context
* @param resourceId
* @param fileName
*/
private void copyRawFile(Context context, int resourceId, String fileName) {
InputStream input = null;
OutputStream output = null;
try {
input = context.getResources().openRawResource(resourceId);
output = context.openFileOutput(fileName, Context.MODE_PRIVATE);
byte[] buff = new byte[1024*4];
int size = 0;
while((size = input.read(buff)) >= 0) {
output.write(buff, 0, size);
}
output.flush();
output.close();
input.close();
output = null;
input = null;
}catch(Exception e) {
try {
if(output != null) output.close();
if(input != null) input.close();
}catch(Exception e2){
}
}
}
}
-----------------
SDcard直下の場合の続き
-----------------
/**
* リソースをSDcardの直下にコピーする
*
* @param context
* @param resourceId
* @param fileName
*/
private void copyRawFile(Context context, int resourceId, String FileName) {
File copyFile = new File( Environment.getExternalStorageDirectory().getPath()+"/" + FileName );
InputStream input = null;
FileOutputStream output = null;
try {
input = context.getResources().openRawResource(resourceId);
output = new FileOutputStream(copyFile);
byte[] buff = new byte[1024*4];
int size = 0;
while((size = input.read(buff)) >= 0) {
output.write(buff, 0, size);
}
output.flush();
output.close();
input.close();
output = null;
input = null;
mese();
}catch(Exception e) {
try {
if(output != null) output.close();
if(input != null) input.close();
}catch(Exception e2){
}
}
}
}
-----------------
だそうです。
なんか意味があるのでしょうが。。。。
気付き難かったなぁ。。。
res/rawフォルダに格納されているリソースファイルをローカルフォルダ(/data/data/.../files/)にコピーする場合とsdcardにコピーする場合でちょっとだけ違いがあるみたい。
早く言ってよ。。。
これに気づくのにどんだけ時間かかったか。。。
ローカルにコピーするには
openFileOutput(コピーするファイル名, Context.MODE_PRIVATE);
SDcardにコピーするには
FileOutputStream(コピーするファイルのパス);
なんだそうで。。。
具体的には。。。
-----------------
package com.test.copy;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;
public class copytest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
copyRawFile(this, リソースID(例:R.raw.song01), 保存するファイル名(例:"song01.mp3"));
}
-----------------
ここまでは一緒。
ローカルの場合の続き
-----------------
/**
* リソースをローカルフォルダにコピー。
*
* @param context
* @param resourceId
* @param fileName
*/
private void copyRawFile(Context context, int resourceId, String fileName) {
InputStream input = null;
OutputStream output = null;
try {
input = context.getResources().openRawResource(resourceId);
output = context.openFileOutput(fileName, Context.MODE_PRIVATE);
byte[] buff = new byte[1024*4];
int size = 0;
while((size = input.read(buff)) >= 0) {
output.write(buff, 0, size);
}
output.flush();
output.close();
input.close();
output = null;
input = null;
}catch(Exception e) {
try {
if(output != null) output.close();
if(input != null) input.close();
}catch(Exception e2){
}
}
}
}
-----------------
SDcard直下の場合の続き
-----------------
/**
* リソースをSDcardの直下にコピーする
*
* @param context
* @param resourceId
* @param fileName
*/
private void copyRawFile(Context context, int resourceId, String FileName) {
File copyFile = new File( Environment.getExternalStorageDirectory().getPath()+"/" + FileName );
InputStream input = null;
FileOutputStream output = null;
try {
input = context.getResources().openRawResource(resourceId);
output = new FileOutputStream(copyFile);
byte[] buff = new byte[1024*4];
int size = 0;
while((size = input.read(buff)) >= 0) {
output.write(buff, 0, size);
}
output.flush();
output.close();
input.close();
output = null;
input = null;
mese();
}catch(Exception e) {
try {
if(output != null) output.close();
if(input != null) input.close();
}catch(Exception e2){
}
}
}
}
-----------------
だそうです。
なんか意味があるのでしょうが。。。。
気付き難かったなぁ。。。
登録:
投稿 (Atom)