diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs new file mode 100644 index 0000000..1ee32cc --- /dev/null +++ b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs @@ -0,0 +1,66 @@ +using System;
+using System.ComponentModel;
+using System.IO;
+using System.Text;
+using JetBrains.Annotations;
+using UnityEngine;
+
+namespace Packages.Rider.Editor.Util
+{
+ public static class FileSystemUtil
+ {
+ [NotNull]
+ public static string GetFinalPathName([NotNull] string path)
+ {
+ if (path == null) throw new ArgumentNullException("path");
+
+ // up to MAX_PATH. MAX_PATH on Linux currently 4096, on Mac OS X 1024
+ // doc: http://man7.org/linux/man-pages/man3/realpath.3.html
+ var sb = new StringBuilder(8192);
+ var result = LibcNativeInterop.realpath(path, sb);
+ if (result == IntPtr.Zero)
+ {
+ throw new Win32Exception($"{path} was not resolved.");
+ }
+
+ return new FileInfo(sb.ToString()).FullName;
+ }
+
+ public static string FileNameWithoutExtension(string path)
+ {
+ if (string.IsNullOrEmpty(path))
+ {
+ return "";
+ }
+
+ var indexOfDot = -1;
+ var indexOfSlash = 0;
+ for (var i = path.Length - 1; i >= 0; i--)
+ {
+ if (indexOfDot == -1 && path[i] == '.')
+ {
+ indexOfDot = i;
+ }
+
+ if (indexOfSlash == 0 && path[i] == '/' || path[i] == '\\')
+ {
+ indexOfSlash = i + 1;
+ break;
+ }
+ }
+
+ if (indexOfDot == -1)
+ {
+ indexOfDot = path.Length;
+ }
+
+ return path.Substring(indexOfSlash, indexOfDot - indexOfSlash);
+ }
+
+ public static bool EditorPathExists(string editorPath)
+ {
+ return SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX && new DirectoryInfo(editorPath).Exists
+ || SystemInfo.operatingSystemFamily != OperatingSystemFamily.MacOSX && new FileInfo(editorPath).Exists;
+ }
+ }
+}
\ No newline at end of file |
