IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
WinNTFileSystem.cs
Go to the documentation of this file.
1using System;
2using System.IO;
3using System.Linq;
4using System.Runtime.InteropServices;
5using System.Security;
6
7using IKVM.Runtime;
11
13{
14
15 static class WinNTFileSystem
16 {
17
18#if FIRST_PASS == false
19
20 static WinNTFileSystemAccessor winNTFileSystemAccessor;
21
22 static WinNTFileSystemAccessor WinNTFileSystemAccessor => JVM.Internal.BaseAccessors.Get(ref winNTFileSystemAccessor);
23
24 static global::ikvm.@internal.CallerID __callerID;
25 delegate IntPtr __jniDelegate__canonicalize0(IntPtr jniEnv, IntPtr self, IntPtr path);
26 static __jniDelegate__canonicalize0 __jniPtr__canonicalize0;
27 delegate IntPtr __jniDelegate__canonicalizeWithPrefix0(IntPtr jniEnv, IntPtr self, IntPtr canonicalPrefix, IntPtr pathWithCanonicalPrefix);
28 static __jniDelegate__canonicalizeWithPrefix0 __jniPtr__canonicalizeWithPrefix0;
29 delegate byte __jniDelegate__delete0(IntPtr jniEnv, IntPtr self, IntPtr f);
30 static __jniDelegate__delete0 __jniPtr__delete0;
31 delegate byte __jniDelegate__rename0(IntPtr jniEnv, IntPtr self, IntPtr f1, IntPtr f2);
32 static __jniDelegate__rename0 __jniPtr__rename0;
33 delegate int __jniDelegate__getBooleanAttributes(IntPtr jniEnv, IntPtr self, IntPtr f);
34 static __jniDelegate__getBooleanAttributes __jniPtr__getBooleanAttributes;
35 delegate byte __jniDelegate__checkAccess(IntPtr jniEnv, IntPtr self, IntPtr f, int access);
36 static __jniDelegate__checkAccess __jniPtr__checkAccess;
37 delegate long __jniDelegate__getLastModifiedTime(IntPtr jniEnv, IntPtr self, IntPtr f);
38 static __jniDelegate__getLastModifiedTime __jniPtr__getLastModifiedTime;
39 delegate long __jniDelegate__getLength(IntPtr jniEnv, IntPtr self, IntPtr f);
40 static __jniDelegate__getLength __jniPtr__getLength;
41 delegate byte __jniDelegate__setPermission(IntPtr jniEnv, IntPtr self, IntPtr f, int access, byte enable, byte owneronly);
42 static __jniDelegate__setPermission __jniPtr__setPermission;
43 delegate byte __jniDelegate__createFileExclusively(IntPtr jniEnv, IntPtr self, IntPtr path);
44 static __jniDelegate__createFileExclusively __jniPtr__createFileExclusively;
45 delegate IntPtr __jniDelegate__list(IntPtr jniEnv, IntPtr self, IntPtr f);
46 static __jniDelegate__list __jniPtr__list;
47 delegate byte __jniDelegate__createDirectory(IntPtr jniEnv, IntPtr self, IntPtr f);
48 static __jniDelegate__createDirectory __jniPtr__createDirectory;
49 delegate byte __jniDelegate__setLastModifiedTime(IntPtr jniEnv, IntPtr self, IntPtr f, long time);
50 static __jniDelegate__setLastModifiedTime __jniPtr__setLastModifiedTime;
51 delegate byte __jniDelegate__setReadOnly(IntPtr jniEnv, IntPtr self, IntPtr f);
52 static __jniDelegate__setReadOnly __jniPtr__setReadOnly;
53
54#endif
55
61 static string CanonicalizePath(string path)
62 {
63#if FIRST_PASS
64 throw new NotImplementedException();
65#else
66 try
67 {
68 // begin by processing parent element
69 var parent = Path.GetDirectoryName(path);
70
71 // root paths with drive letter should have driver letter upper cased
72 if (parent == null)
73 return path.Length > 1 && path[1] == ':' ? $"{char.ToUpper(path[0])}:{Path.DirectorySeparatorChar}" : path;
74 else
75 parent = CanonicalizePath(parent);
76
77 // trailing slash would result in a last path element of empty string
78 var name = Path.GetFileName(path);
79 if (name == "" || name == ".")
80 return parent;
81 if (name == "..")
82 return Path.GetDirectoryName(parent);
83
84 try
85 {
86 if (JVM.Vfs.IsPath(path) == false)
87 {
88 // consult the file system for an actual node with the appropriate name
89 var all = Directory.EnumerateFileSystemEntries(parent, name);
90 if (all.FirstOrDefault() is string one)
91 name = Path.GetFileName(one);
92 }
93 }
94 catch (UnauthorizedAccessException)
95 {
96
97 }
98 catch (IOException)
99 {
100
101 }
102
103 return Path.Combine(parent, name);
104 }
105 catch (UnauthorizedAccessException)
106 {
107
108 }
109 catch (IOException)
110 {
111
112 }
113 catch (SecurityException)
114 {
115
116 }
117 catch (NotSupportedException)
118 {
119
120 }
121
122 return path;
123#endif
124 }
125
133 public static string canonicalize0(object self, string path)
134 {
135#if FIRST_PASS
136 throw new NotImplementedException();
137#else
138 if (JVM.Vfs.IsPath(path))
139 {
140 return CanonicalizePath(Path.IsPathRooted(path) == false ? Path.GetFullPath(path) : path);
141 }
142 else
143 {
144 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
145 __jniPtr__canonicalize0 ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__canonicalize0>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(canonicalize0), "(Ljava/lang/String;)Ljava/lang/String;"));
146 var jniFrm = new JNIFrame();
147 var jniEnv = jniFrm.Enter(__callerID);
148 try
149 {
150 return (string)jniFrm.UnwrapLocalRef(__jniPtr__canonicalize0(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(path)));
151 }
152 catch (Exception ex)
153 {
154 System.Console.WriteLine("*** exception in native code ***");
155 System.Console.WriteLine(ex);
156 throw;
157 }
158 finally
159 {
160 jniFrm.Leave();
161 }
162 }
163#endif
164 }
165
174 public static string canonicalizeWithPrefix0(object self, string canonicalPrefix, string pathWithCanonicalPrefix)
175 {
176#if FIRST_PASS
177 throw new NotImplementedException();
178#else
179 if (JVM.Vfs.IsPath(pathWithCanonicalPrefix))
180 {
181 return CanonicalizePath(Path.IsPathRooted(pathWithCanonicalPrefix) == false ? Path.GetFullPath(pathWithCanonicalPrefix) : pathWithCanonicalPrefix);
182 }
183 else
184 {
185 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
186 __jniPtr__canonicalizeWithPrefix0 ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__canonicalizeWithPrefix0>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(canonicalizeWithPrefix0), "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"));
187 var jniFrm = new JNIFrame();
188 var jniEnv = jniFrm.Enter(__callerID);
189 try
190 {
191 return (string)jniFrm.UnwrapLocalRef(__jniPtr__canonicalizeWithPrefix0(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(canonicalPrefix), jniFrm.MakeLocalRef(pathWithCanonicalPrefix)));
192 }
193 catch (Exception ex)
194 {
195 System.Console.WriteLine("*** exception in native code ***");
196 System.Console.WriteLine(ex);
197 throw;
198 }
199 finally
200 {
201 jniFrm.Leave();
202 }
203 }
204#endif
205 }
206
214 public static bool delete0(object self, object f)
215 {
216#if FIRST_PASS
217 throw new NotImplementedException();
218#else
219 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
220 {
221 throw new NotImplementedException();
222 }
223 else
224 {
225 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
226 __jniPtr__delete0 ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__delete0>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(delete0), "(Ljava/io/File;)Z"));
227 var jniFrm = new JNIFrame();
228 var jniEnv = jniFrm.Enter(__callerID);
229 try
230 {
231 return __jniPtr__delete0(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f)) != 0;
232 }
233 catch (Exception ex)
234 {
235 System.Console.WriteLine("*** exception in native code ***");
236 System.Console.WriteLine(ex);
237 throw;
238 }
239 finally
240 {
241 jniFrm.Leave();
242 }
243 }
244#endif
245 }
246
255 public static bool rename0(object self, object f1, object f2)
256 {
257#if FIRST_PASS
258 throw new NotImplementedException();
259#else
260 if (JVM.Vfs.IsPath(((global::java.io.File)f1).getPath()) || JVM.Vfs.IsPath(((global::java.io.File)f2).getPath()))
261 {
262 throw new NotImplementedException();
263 }
264 else
265 {
266 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
267 __jniPtr__rename0 ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__rename0>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(rename0), "(Ljava/io/File;Ljava/io/File;)Z"));
268 var jniFrm = new JNIFrame();
269 var jniEnv = jniFrm.Enter(__callerID);
270 try
271 {
272 return __jniPtr__rename0(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f1), jniFrm.MakeLocalRef(f2)) != 0;
273 }
274 catch (Exception ex)
275 {
276 System.Console.WriteLine("*** exception in native code ***");
277 System.Console.WriteLine(ex);
278 throw;
279 }
280 finally
281 {
282 jniFrm.Leave();
283 }
284 }
285#endif
286 }
287
294 public static int getBooleanAttributes(object self, object f)
295 {
296#if FIRST_PASS
297 throw new NotImplementedException();
298#else
299 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
300 {
301 return JVM.Vfs.GetBooleanAttributes(((global::java.io.File)f).getPath());
302 }
303 else
304 {
305 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
306 __jniPtr__getBooleanAttributes ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__getBooleanAttributes>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(getBooleanAttributes), "(Ljava/io/File;)I"));
307 var jniFrm = new JNIFrame();
308 var jniEnv = jniFrm.Enter(__callerID);
309 try
310 {
311 return __jniPtr__getBooleanAttributes(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f));
312 }
313 catch (Exception ex)
314 {
315 System.Console.WriteLine("*** exception in native code ***");
316 System.Console.WriteLine(ex);
317 throw;
318 }
319 finally
320 {
321 jniFrm.Leave();
322 }
323 }
324#endif
325 }
326
334 public static bool checkAccess(object self, object f, int access)
335 {
336#if FIRST_PASS
337 throw new NotImplementedException();
338#else
339 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
340 {
341 const int ACCESS_READ = 0x04;
342 return JVM.Vfs.GetEntry(((global::java.io.File)f).getPath()) switch
343 {
344 VfsFile file => access == ACCESS_READ && file.CanOpen(FileMode.Open, FileAccess.Read),
345 VfsDirectory => true,
346 _ => false,
347 };
348 }
349 else
350 {
351 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
352 __jniPtr__checkAccess ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__checkAccess>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(checkAccess), "(Ljava/io/File;I)Z"));
353 var jniFrm = new JNIFrame();
354 var jniEnv = jniFrm.Enter(__callerID);
355 try
356 {
357 return __jniPtr__checkAccess(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f), access) != 0;
358 }
359 catch (Exception ex)
360 {
361 System.Console.WriteLine("*** exception in native code ***");
362 System.Console.WriteLine(ex);
363 throw;
364 }
365 finally
366 {
367 jniFrm.Leave();
368 }
369 }
370#endif
371 }
372
379 public static long getLastModifiedTime(object self, object f)
380 {
381#if FIRST_PASS
382 throw new NotImplementedException();
383#else
384 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
385 {
386 return 0;
387 }
388 else
389 {
390 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
391 __jniPtr__getLastModifiedTime ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__getLastModifiedTime>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(getLastModifiedTime), "(Ljava/io/File;)J"));
392 var jniFrm = new JNIFrame();
393 var jniEnv = jniFrm.Enter(__callerID);
394 try
395 {
396 return __jniPtr__getLastModifiedTime(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f));
397 }
398 catch (Exception ex)
399 {
400 System.Console.WriteLine("*** exception in native code ***");
401 System.Console.WriteLine(ex);
402 throw;
403 }
404 finally
405 {
406 jniFrm.Leave();
407 }
408 }
409#endif
410 }
411
418 public static long getLength(object self, object f)
419 {
420#if FIRST_PASS
421 throw new NotImplementedException();
422#else
423 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
424 {
425 return JVM.Vfs.GetEntry(((global::java.io.File)f).getPath()) is VfsFile file ? file.Size : 0;
426 }
427 else
428 {
429 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
430 __jniPtr__getLength ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__getLength>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(getLength), "(Ljava/io/File;)J"));
431 var jniFrm = new JNIFrame();
432 var jniEnv = jniFrm.Enter(__callerID);
433 try
434 {
435 return __jniPtr__getLength(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f));
436 }
437 catch (Exception ex)
438 {
439 System.Console.WriteLine("*** exception in native code ***");
440 System.Console.WriteLine(ex);
441 throw;
442 }
443 finally
444 {
445 jniFrm.Leave();
446 }
447 }
448#endif
449 }
450
460 public static bool setPermission(object self, object f, int access, bool enable, bool owneronly)
461 {
462#if FIRST_PASS
463 throw new NotImplementedException();
464#else
465 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
466 {
467 return false;
468 }
469 else
470 {
471 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
472 __jniPtr__setPermission ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__setPermission>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(setPermission), "(Ljava/io/File;IZZ)Z"));
473 var jniFrm = new JNIFrame();
474 var jniEnv = jniFrm.Enter(__callerID);
475 try
476 {
477 return __jniPtr__setPermission(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f), access, enable ? (byte)1 : (byte)0, owneronly ? (byte)1 : (byte)0) != 0;
478 }
479 catch (Exception ex)
480 {
481 System.Console.WriteLine("*** exception in native code ***");
482 System.Console.WriteLine(ex);
483 throw;
484 }
485 finally
486 {
487 jniFrm.Leave();
488 }
489 }
490#endif
491 }
492
499 public static bool createFileExclusively(object self, string path)
500 {
501#if FIRST_PASS
502 throw new NotImplementedException();
503#else
504 if (JVM.Vfs.IsPath(path))
505 {
506 return false;
507 }
508 else
509 {
510 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
511 __jniPtr__createFileExclusively ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__createFileExclusively>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(createFileExclusively), "(Ljava/lang/String;)Z"));
512 var jniFrm = new JNIFrame();
513 var jniEnv = jniFrm.Enter(__callerID);
514 try
515 {
516 return __jniPtr__createFileExclusively(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(path)) != 0;
517 }
518 catch (Exception ex)
519 {
520 System.Console.WriteLine("*** exception in native code ***");
521 System.Console.WriteLine(ex);
522 throw;
523 }
524 finally
525 {
526 jniFrm.Leave();
527 }
528 }
529#endif
530 }
531
538 public static string[] list(object self, object f)
539 {
540#if FIRST_PASS
541 throw new NotImplementedException();
542#else
543 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
544 {
545 if (JVM.Vfs.GetEntry(((global::java.io.File)f).getPath()) is VfsDirectory vfs)
546 return vfs.List();
547
548 return null;
549 }
550 else
551 {
552 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
553 __jniPtr__list ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__list>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(list), "(Ljava/io/File;)[Ljava/lang/String;"));
554 var jniFrm = new JNIFrame();
555 var jniEnv = jniFrm.Enter(__callerID);
556 try
557 {
558 return (string[])jniFrm.UnwrapLocalRef(__jniPtr__list(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f)));
559 }
560 catch (Exception ex)
561 {
562 System.Console.WriteLine("*** exception in native code ***");
563 System.Console.WriteLine(ex);
564 throw;
565 }
566 finally
567 {
568 jniFrm.Leave();
569 }
570 }
571#endif
572 }
573
580 public static bool createDirectory(object self, object f)
581 {
582#if FIRST_PASS
583 throw new NotImplementedException();
584#else
585 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
586 {
587 return false;
588 }
589 else
590 {
591 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
592 __jniPtr__createDirectory ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__createDirectory>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(createDirectory), "(Ljava/io/File;)Z"));
593 var jniFrm = new JNIFrame();
594 var jniEnv = jniFrm.Enter(__callerID);
595 try
596 {
597 return __jniPtr__createDirectory(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f)) != 0;
598 }
599 catch (Exception ex)
600 {
601 System.Console.WriteLine("*** exception in native code ***");
602 System.Console.WriteLine(ex);
603 throw;
604 }
605 finally
606 {
607 jniFrm.Leave();
608 }
609 }
610#endif
611 }
612
620 public static bool setLastModifiedTime(object self, object f, long time)
621 {
622#if FIRST_PASS
623 throw new NotImplementedException();
624#else
625 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
626 {
627 return false;
628 }
629 else
630 {
631 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
632 __jniPtr__setLastModifiedTime ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__setLastModifiedTime>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(setLastModifiedTime), "(Ljava/io/File;J)Z"));
633 var jniFrm = new JNIFrame();
634 var jniEnv = jniFrm.Enter(__callerID);
635 try
636 {
637 return __jniPtr__setLastModifiedTime(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f), time) != 0;
638 }
639 catch (Exception ex)
640 {
641 System.Console.WriteLine("*** exception in native code ***");
642 System.Console.WriteLine(ex);
643 throw;
644 }
645 finally
646 {
647 jniFrm.Leave();
648 }
649 }
650#endif
651 }
652
659 public static bool setReadOnly(object self, object f)
660 {
661#if FIRST_PASS
662 throw new NotImplementedException();
663#else
664 if (JVM.Vfs.IsPath(((global::java.io.File)f).getPath()))
665 {
666 return false;
667 }
668 else
669 {
670 __callerID ??= global::ikvm.@internal.CallerID.create(WinNTFileSystemAccessor.Type.TypeHandle);
671 __jniPtr__setReadOnly ??= Marshal.GetDelegateForFunctionPointer<__jniDelegate__setReadOnly>(JNIFrame.GetFuncPtr(__callerID, "java/io/WinNTFileSystem", nameof(setReadOnly), "(Ljava/io/File;)Z"));
672 var jniFrm = new JNIFrame();
673 var jniEnv = jniFrm.Enter(__callerID);
674 try
675 {
676 return __jniPtr__setReadOnly(jniEnv, jniFrm.MakeLocalRef(self), jniFrm.MakeLocalRef(f)) != 0;
677 }
678 catch (Exception ex)
679 {
680 System.Console.WriteLine("*** exception in native code ***");
681 System.Console.WriteLine(ex);
682 throw;
683 }
684 finally
685 {
686 jniFrm.Leave();
687 }
688 }
689#endif
690 }
691
692 }
693
694}
static string canonicalize0(object self, string path)
Implements the native method 'canonicalize0'.
static bool createFileExclusively(object self, string path)
Implements the native method 'createFileExclusively'.
static string canonicalizeWithPrefix0(object self, string canonicalPrefix, string pathWithCanonicalPrefix)
Implements the native method 'canonicalizeWithPrefix0'.
static bool setReadOnly(object self, object f)
Implements the native method 'setReadOnly'.
static int getBooleanAttributes(object self, object f)
Implements the native method 'getBooleanAttributes'.
static bool checkAccess(object self, object f, int access)
Implements the native method 'checkAccess'.
static bool delete0(object self, object f)
Implements the native method 'delete0'.
static string[] list(object self, object f)
Implements the native method 'list'.
static long getLastModifiedTime(object self, object f)
Implements the native method 'getLastModifiedTime'.
static long getLength(object self, object f)
Implements the native method 'getLength'.
static bool createDirectory(object self, object f)
Implements the native method 'createDirectory'.
static bool rename0(object self, object f1, object f2)
Implements the native method 'rename0'.
static bool setPermission(object self, object f, int access, bool enable, bool owneronly)
Implements the native method 'setPermission'.
static bool setLastModifiedTime(object self, object f, long time)
Implements the native method 'setLastModifiedTime'.
Main state of the running JVM.
static nint GetFuncPtr(object callerID, string clazz, string name, string sig)
Invoked by managed code to acquire a function pointer to a native JNI method.
Definition JNIFrame.cs:43