Skip to content

Commit e9ec5ea

Browse files
authored
Feature: Add support for Autodesk drive (#11148)
1 parent 2f4bce7 commit e9ec5ea

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

src/Files.App/Helpers/CloudDrivesDetector.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static async Task<IEnumerable<ICloudProvider>> DetectCloudDrives()
2727
SafetyExtensions.IgnoreExceptions(DetectpCloudDrive, App.Logger),
2828
SafetyExtensions.IgnoreExceptions(DetectNutstoreDrive, App.Logger),
2929
SafetyExtensions.IgnoreExceptions(DetectSeadriveDrive, App.Logger),
30+
SafetyExtensions.IgnoreExceptions(DetectAutodeskDrive, App.Logger),
3031
};
3132

3233
await Task.WhenAll(tasks);
@@ -292,5 +293,33 @@ private static Task<IEnumerable<ICloudProvider>> DetectSeadriveDrive()
292293

293294
return Task.FromResult<IEnumerable<ICloudProvider>>(results);
294295
}
296+
297+
private static Task<IEnumerable<ICloudProvider>> DetectAutodeskDrive()
298+
{
299+
var results = new List<ICloudProvider>();
300+
using var AutodeskKey = Registry.LocalMachine.OpenSubKey(@"Software\Autodesk\Desktop Connector");
301+
302+
if (AutodeskKey is not null)
303+
{
304+
string iconPath = Path.Combine(programFilesFolder, "Autodesk", "Desktop Connector", "DesktopConnector.Applications.Tray.exe");
305+
var iconFile = Win32API.ExtractSelectedIconsFromDLL(iconPath, new List<int>() { 32512 }).FirstOrDefault();
306+
var mainFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "DC");
307+
var autodeskFolders = Directory.GetDirectories(mainFolder, "", SearchOption.AllDirectories);
308+
309+
foreach (var autodeskFolder in autodeskFolders)
310+
{
311+
var folderName = Path.GetFileName(autodeskFolder);
312+
if (folderName is not null)
313+
results.Add(new CloudProvider(CloudProviders.Autodesk)
314+
{
315+
Name = $"Autodesk - {Path.GetFileName(autodeskFolder)}",
316+
SyncFolder = autodeskFolder,
317+
IconData = iconFile?.IconData
318+
});
319+
}
320+
}
321+
322+
return Task.FromResult<IEnumerable<ICloudProvider>>(results);
323+
}
295324
}
296325
}

src/Files.Shared/Cloud/CloudProviders.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public enum CloudProviders
1818
pCloud,
1919
AdobeCreativeCloud,
2020
Nutstore,
21-
Seadrive
21+
Seadrive,
22+
Autodesk
2223
}
2324
}

0 commit comments

Comments
 (0)