add File.canRead()/File.canWrite() implementation

This commit is contained in:
Zsombor Gegesy 2010-08-15 15:06:36 +02:00
parent 7376425b24
commit 6752505cb8
3 changed files with 38 additions and 0 deletions

View File

@ -377,6 +377,31 @@ Java_java_io_File_delete(JNIEnv* e, jclass, jstring path)
} }
} }
extern "C" JNIEXPORT jboolean JNICALL
Java_java_io_File_canRead(JNIEnv* e, jclass, jstring path)
{
string_t chars = getChars(e, path);
if (chars) {
int r = access(chars, R_OK);
releaseChars(e, path, chars);
return (r == 0);
}
return false;
}
extern "C" JNIEXPORT jboolean JNICALL
Java_java_io_File_canWrite(JNIEnv* e, jclass, jstring path)
{
string_t chars = getChars(e, path);
if (chars) {
int r = access(chars, W_OK);
releaseChars(e, path, chars);
return (r == 0);
}
return false;
}
extern "C" JNIEXPORT jboolean JNICALL extern "C" JNIEXPORT jboolean JNICALL
Java_java_io_File_rename(JNIEnv* e, jclass, jstring old, jstring new_) Java_java_io_File_rename(JNIEnv* e, jclass, jstring old, jstring new_)
{ {

View File

@ -60,7 +60,19 @@ public class File {
public boolean isFile() { public boolean isFile() {
return isFile(path); return isFile(path);
} }
private static native boolean canRead(String path);
public boolean canRead() {
return canRead(path);
}
private static native boolean canWrite(String path);
public boolean canWrite() {
return canWrite(path);
}
public String getName() { public String getName() {
int index = path.lastIndexOf(FileSeparator); int index = path.lastIndexOf(FileSeparator);
if (index >= 0) { if (index >= 0) {

View File

@ -1,3 +1,4 @@
import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.File; import java.io.File;