ファイルの削除
ローカルのファイルを削除する処理をクラスに実装したサンプルです。
import android.content.Context;
import android.util.Log;
/*
戻り値
0:正常
1:エラー
-1:ファイルが存在しない
*/
public class clsFileDelete {
public int fileDelete(Context context, int iResourceId)
{
String sFileName = "";
String sPath = "";
//ファイル名取得
clsTemp1 cls = new clsTemp1();
sFileName = cls.getStringXmlData(context, iResourceId);
sPath = cls.getPath(context, sFileName);
Log.d("sFileName",sFileName);
cls = null;
//ファイル存在チェック
int iResult = 0;
clsFileExists cls2 = new clsFileExists();
iResult = cls2.FileExists(context, sFileName);
Log.d("FileExists iResult",String.valueOf(iResult));
cls2 = null;
if (iResult > 0)
{
Log.d("if (iResult > 0)",String.valueOf(iResult));
//ファイルは存在しないので処理を終了します。
return -1;
}
//ファイル削除
try
{
Log.d("sFileName","delete実行前");
//context.deleteFile(sPath);
context.deleteFile(sFileName);
Log.d("sFileName","delete実行後");
}
catch (Exception e)
{
Log.d("Exception", e.getMessage().toString());
return 1;
}
Log.d("fileDelete","end");
return 0;
}
}
|
ファイルの削除はdeleteFileを使用します。
Contextを使用しているのでクラスなど他のファイルで実装するときは
使用して下さい。
(例)
context.deleteFile(sFileName);
import android.content.Context;
import java.io.File;
public class clsFileExists {
//getFilesDir(内部データ領域)
//ディレクトリ取得メソッド
//「getFilesDir」はContextを使用します
//ex.)
//context.getFilesDir()
public int FileExists(Context context, String sFileName)
{
int iResult = 0;
clsTemp1 cls = new clsTemp1();
//ファイルのパス
String sPath = cls.getPath(context, sFileName);
//ファイルオブジェクトを生成
File file =new File(sPath);
//ファイル存在チェック
if(file.exists() != true)iResult=1;
return iResult;
}
public int FileExists2(Context context,String sFileName)
{
int iResult = 0;
//ファイルオブジェクトを生成
//File file = context.getFileStreamPath(sPath.toString());
File file = context.getFileStreamPath(sFileName);
//ファイル存在チェック
if(file.exists() != true)iResult=1;
return iResult;
}
}
|
クラスの呼び出し側です。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ファイル存在チェック
//fileExists();
//ファイル削除
fileDelete();
//ファイルコピー
//fileCopy();
//ファイル移動
//fileMove();
//ファイル作成
//fileCreate();
}
//ファイル削除
private void fileDelete()
{
int iResult = 0;
Log.d("fileCopy","clsFileDelete instance");
clsFileDelete cls = new clsFileDelete();
Log.d("fileCopy","fileDelete method start");
iResult = cls.fileDelete(this, R.string.png_file_name);
Log.d("iResult", String.valueOf(iResult));
cls = null;
Log.d("fileCopy","end");
}
|
パスやファイル名を取得しているクラスです。
import android.content.Context;
import android.util.Log;
public class clsTemp1 {
//strings.xmlから指定した文字列を取得します。
//context:Context
//iResourceId:strings.xmlに定義しているリソースId
public String getStringXmlData(Context context, int iResourceId)
{
//strings.xmlからリソースIDを指定して文字列を取得します。
return context.getString(iResourceId);
}
public String getPath(Context context, String sFileName)
{
//ファイルのパス
String sPath = context.getFilesDir().getAbsolutePath() + "/" + sFileName;
Log.d("sPath", sPath);
/*
//ファイルのパス
StringBuffer sPath = new StringBuffer();
sPath.append(context.getFilesDir());
sPath.append("\\");
sPath.append(sFileName);
Log.d("sPath", sPath.toString());
*/
//ex.)
//sPath: /data/data/test.example.com.test23/files/ic_launcher.png
return sPath;
}
}
|
サンプルに使用しているstrings.xmlです。
<resources>
<string name="app_name">test23</string>
<string name="png_file_name">ic_launcher.png</string>
<string name="png_file_name2">ic_launcher2.png</string>
<string name="png_file_name3">ic_launcher3.png</string>
</resources>
|
|
|