@@ -27,6 +27,7 @@ public static async Task<IEnumerable<ICloudProvider>> DetectCloudDrives()
27
27
SafetyExtensions . IgnoreExceptions ( DetectpCloudDrive , App . Logger ) ,
28
28
SafetyExtensions . IgnoreExceptions ( DetectNutstoreDrive , App . Logger ) ,
29
29
SafetyExtensions . IgnoreExceptions ( DetectSeadriveDrive , App . Logger ) ,
30
+ SafetyExtensions . IgnoreExceptions ( DetectAutodeskDrive , App . Logger ) ,
30
31
} ;
31
32
32
33
await Task . WhenAll ( tasks ) ;
@@ -292,5 +293,33 @@ private static Task<IEnumerable<ICloudProvider>> DetectSeadriveDrive()
292
293
293
294
return Task . FromResult < IEnumerable < ICloudProvider > > ( results ) ;
294
295
}
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
+ }
295
324
}
296
325
}
0 commit comments