@@ -143,6 +143,10 @@ public APIv2_core_Module() : base("/api")
143
143
Get [ "/webui/update/unstable" ] = _ => { return WebUIUnstableUpdate ( ) ; } ;
144
144
Get [ "/webui/latest/unstable" ] = _ => { return WebUILatestUnstableVersion ( ) ; } ;
145
145
146
+ // 16. OS-based operations
147
+ Get [ "/os/folder/base" ] = _ => { return GetOSBaseFolder ( ) ; } ;
148
+ Post [ "/os/folder" ] = x => { return GetOSFolder ( x . folder ) ; } ;
149
+ Get [ "/os/drives" ] = _ => { return GetOSDrives ( ) ; } ;
146
150
}
147
151
148
152
#region 1.Folders
@@ -1485,5 +1489,81 @@ internal string WebUIGetVersionsTag(bool stable)
1485
1489
1486
1490
#endregion
1487
1491
1492
+ #region 16.OS-based operations
1493
+
1494
+ /// <summary>
1495
+ /// Return OSFolder object that is a folder from which jmmserver is running
1496
+ /// </summary>
1497
+ /// <returns></returns>
1498
+ private object GetOSBaseFolder ( )
1499
+ {
1500
+ OSFolder dir = new OSFolder ( ) ;
1501
+ dir . full_path = Environment . CurrentDirectory ;
1502
+ System . IO . DirectoryInfo dir_info = new DirectoryInfo ( dir . full_path ) ;
1503
+ dir . dir = dir_info . Name ;
1504
+ dir . subdir = new List < OSFolder > ( ) ;
1505
+
1506
+ foreach ( DirectoryInfo info in dir_info . GetDirectories ( ) )
1507
+ {
1508
+ OSFolder subdir = new OSFolder ( ) ;
1509
+ subdir . full_path = info . FullName ;
1510
+ subdir . dir = info . Name ;
1511
+ dir . subdir . Add ( subdir ) ;
1512
+ }
1513
+ return dir ;
1514
+ }
1515
+
1516
+ /// <summary>
1517
+ /// Return OSFolder object of directory that was given via
1518
+ /// </summary>
1519
+ /// <param name="folder"></param>
1520
+ /// <returns></returns>
1521
+ private object GetOSFolder ( string folder )
1522
+ {
1523
+ OSFolder dir = this . Bind ( ) ;
1524
+ if ( ! String . IsNullOrEmpty ( dir . full_path ) )
1525
+ {
1526
+ System . IO . DirectoryInfo dir_info = new DirectoryInfo ( dir . full_path ) ;
1527
+ dir . dir = dir_info . Name ;
1528
+ dir . subdir = new List < OSFolder > ( ) ;
1529
+
1530
+ foreach ( DirectoryInfo info in dir_info . GetDirectories ( ) )
1531
+ {
1532
+ OSFolder subdir = new OSFolder ( ) ;
1533
+ subdir . full_path = info . FullName ;
1534
+ subdir . dir = info . Name ;
1535
+ dir . subdir . Add ( subdir ) ;
1536
+ }
1537
+ return dir ;
1538
+ }
1539
+ else
1540
+ {
1541
+ return HttpStatusCode . BadRequest ;
1542
+ }
1543
+ }
1544
+
1545
+ /// <summary>
1546
+ /// Return OSFolder with subdirs as every driver on local system
1547
+ /// </summary>
1548
+ /// <returns></returns>
1549
+ private object GetOSDrives ( )
1550
+ {
1551
+ string [ ] drives = System . IO . Directory . GetLogicalDrives ( ) ;
1552
+ OSFolder dir = new OSFolder ( ) ;
1553
+ dir . dir = "/" ;
1554
+ dir . full_path = "/" ;
1555
+ foreach ( string str in drives )
1556
+ {
1557
+ OSFolder driver = new OSFolder ( ) ;
1558
+ driver . dir = str ;
1559
+ driver . full_path = str ;
1560
+ dir . subdir . Add ( driver ) ;
1561
+ }
1562
+
1563
+ return dir ;
1564
+ }
1565
+
1566
+ #endregion
1567
+
1488
1568
}
1489
1569
}
0 commit comments