equal
deleted
inserted
replaced
46 /** |
46 /** |
47 * jfieldIDs |
47 * jfieldIDs |
48 */ |
48 */ |
49 static jfieldID findFirst_handle; |
49 static jfieldID findFirst_handle; |
50 static jfieldID findFirst_name; |
50 static jfieldID findFirst_name; |
|
51 static jfieldID findFirst_attributes; |
51 |
52 |
52 static jfieldID findStream_handle; |
53 static jfieldID findStream_handle; |
53 static jfieldID findStream_name; |
54 static jfieldID findStream_name; |
54 |
55 |
55 static jfieldID volumeInfo_fsName; |
56 static jfieldID volumeInfo_fsName; |
132 if (clazz == NULL) { |
133 if (clazz == NULL) { |
133 return; |
134 return; |
134 } |
135 } |
135 findFirst_handle = (*env)->GetFieldID(env, clazz, "handle", "J"); |
136 findFirst_handle = (*env)->GetFieldID(env, clazz, "handle", "J"); |
136 findFirst_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;"); |
137 findFirst_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;"); |
|
138 findFirst_attributes = (*env)->GetFieldID(env, clazz, "attributes", "I"); |
137 |
139 |
138 clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstStream"); |
140 clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstStream"); |
139 if (clazz == NULL) { |
141 if (clazz == NULL) { |
140 return; |
142 return; |
141 } |
143 } |
369 jstring name = (*env)->NewString(env, data.cFileName, wcslen(data.cFileName)); |
371 jstring name = (*env)->NewString(env, data.cFileName, wcslen(data.cFileName)); |
370 if (name == NULL) |
372 if (name == NULL) |
371 return; |
373 return; |
372 (*env)->SetLongField(env, obj, findFirst_handle, ptr_to_jlong(handle)); |
374 (*env)->SetLongField(env, obj, findFirst_handle, ptr_to_jlong(handle)); |
373 (*env)->SetObjectField(env, obj, findFirst_name, name); |
375 (*env)->SetObjectField(env, obj, findFirst_name, name); |
|
376 (*env)->SetIntField(env, obj, findFirst_attributes, data.dwFileAttributes); |
374 } else { |
377 } else { |
375 throwWindowsException(env, GetLastError()); |
378 throwWindowsException(env, GetLastError()); |
376 } |
379 } |
377 } |
380 } |
378 |
381 |
385 |
388 |
386 HANDLE handle = FindFirstFileW(lpFileName, data); |
389 HANDLE handle = FindFirstFileW(lpFileName, data); |
387 if (handle == INVALID_HANDLE_VALUE) { |
390 if (handle == INVALID_HANDLE_VALUE) { |
388 throwWindowsException(env, GetLastError()); |
391 throwWindowsException(env, GetLastError()); |
389 } |
392 } |
390 return ptr_to_jlong(handle); |
393 return ptr_to_jlong(handle); |
391 } |
394 } |
392 |
395 |
393 JNIEXPORT jstring JNICALL |
396 JNIEXPORT jstring JNICALL |
394 Java_sun_nio_fs_WindowsNativeDispatcher_FindNextFile(JNIEnv* env, jclass this, |
397 Java_sun_nio_fs_WindowsNativeDispatcher_FindNextFile(JNIEnv* env, jclass this, |
395 jlong handle, jlong dataAddress) |
398 jlong handle, jlong dataAddress) |