|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Скажем так, технологией работы через API я владею: SetupIterateCabinet function Creating a Cabinet Callback Routine В самом .Net "родной" обертки нету? P.S. При отсутствии более элегантных вариантов придется переписывать VB6 ->.Net, коды как бы не хилые. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 04:19 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 05:13 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Алексей К, Ну, на "родной класс" это конечно не тянет, т.е. нету. В принципе через API посмотрю выдеру то что мне надо. Собственно извлечение заданного файла из заданного CAB-архива в заданное место делается системной утилитой extrac32.exe, например: Код: vbnet 1.
(это стандартный прием) Но в своей задаче я перерываю разные известные места на компе типа DriverCachePath, ServicePackSourcePath, SetupPromptForDisk (включая CAB архивы) с целью найти наиболее свежую версию требуемого файла стандартного драйвера, и утилиты извлечения как бы недостаточно, т.е. надо определить наличие и дату файла с заданным именем в CAB до его извлечения. Но там самый гимор даже не сам CAB а рекурсивный поиск файлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 15:29 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Дмитрий77Ну, на "родной класс" это конечно не тянет, т.е. нету.Нужны шашечки или ехать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 05:34 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Алексей КДмитрий77Ну, на "родной класс" это конечно не тянет, т.е. нету.Нужны шашечки или ехать? Ехать но без подобных прицепов. А вариантов в общем случае 2: либо .Net-класс, либо API раз нет такого класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:05 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Дмитрий77Ехать но без подобных прицепов.И чем не устраивает готовая проверенная библиотека от Microsoft? Дмитрий77А вариантов в общем случае 2: либо .Net-класс, либо API раз нет такого класса.В случае с POP3, помнится, был вариант №3. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:03 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
skyANAВ случае с POP3, помнится, был вариант №3. В смысле? Я там все через .Net сделал (вариант #1). А если и скоммуниздил чей-то проект, то полностью переварил и пережевал код, так что чужой библиотекой (скомпилированной) считай не воспользовался. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:23 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Дмитрий77skyANAВ случае с POP3, помнится, был вариант №3. В смысле? Я там все через .Net сделал (вариант #1). А если и скоммуниздил чей-то проект, то полностью переварил и пережевал код, так что чужой библиотекой (скомпилированной) считай не воспользовался.Дак это и есть вариант №3. Самостоятельно Вы бы сколько времени с API разбирались и писали собственный код? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:46 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Вообще глупо ожидать "в самом .Net "родной" обертки для работы с CAB-архивами". Особенно учитывая современные тенденции. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:49 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
skyANAВообще глупо ожидать "в самом .Net "родной" обертки для работы с CAB-архивами". Особенно учитывая современные тенденции.CAB архивы это уже как ARJ =) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 11:35 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
Roman MejtesskyANAВообще глупо ожидать "в самом .Net "родной" обертки для работы с CAB-архивами". Особенно учитывая современные тенденции.CAB архивы это уже как ARJ =)Ну ну... Cabinet (file format) Cabinet (or CAB ) is an archive file format for Microsoft Windows Open-source ARJ ARJ is available for more than 10 platforms . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 12:16 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
skyANARoman Mejtesпропущено... CAB архивы это уже как ARJ =)Ну ну... Cabinet (file format) Cabinet (or CAB ) is an archive file format for Microsoft Windows Open-source ARJ ARJ is available for more than 10 platforms . Я в том плане, что это динозавры :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:26 |
|
А в .Net есть встроенная поддержка для работы с CAB-архивами?
|
|||
---|---|---|---|
#18+
skyANAСамостоятельно Вы бы сколько времени с API разбирались и писали собственный код? Что касается POP3/IMAP то думаю долго. Потому что я никогда этого раньше не делал. В принципе вряд ли это сильно сложно, но там есть один подводный камень, а именно SSL, что в .Net делается относительно просто путем оборачивания всего в SSLStream а вот в API хрен знает, не разбирался, да и вряд ли надо. Что касается CAB, то здесь ситуация иная, у меня все что мне нужно было УЖЕ сделано через API в VB6. Повозиться чуть пришлось, но это заняло разумное время, глядел в свои же коды, а также вот в этот чужой проект на ту же тему: Iterate and Extract Cabinet File (все таки в .Net какие-то приемы делаются чуть по-другому, поэтому пришлось чуть попыхтеть) В итоге получился вот такой класс (+пример кода перебирающий все файлы в архиве): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724. 725. 726. 727. 728. 729. 730. 731. 732. 733. 734. 735. 736. 737. 738. 739. 740. 741. 742. 743. 744. 745. 746. 747. 748.
Что касается простыни класса, то я его не дописал, т.к. мне нужно только GetInfo(), а извлекаю я через extrac32.exe -так больше нравится. Но часть кода для extract() что касается коллбэка таки-есть, не хотелось сильно уродовать старый код, ну и не стал местами переделывать на IO.Path/IO.File -оставил манипуляции с путями в старом виде. Roman MejtesCAB архивы это уже как ARJ =) ... Я в том плане, что это динозавры :) В чем-то я с тобой согласен. Хотя их никто не отменял. У меня это используется для поиска стандартных файлов драйвера принтера. Причем сложная процедура используется только на XP/2003 Последовательный поиск нужных файлов в папках: DriverCachePath\i386 либо DriverCachePath\amd64 ServicePackSourcePath\i386 либо ServicePackSourcePath\amd64 SystemInstallPath\i386 либо SystemInstallPath\amd64 SetupDiskPrompt (на установочном диске windows) Причем файлы с заданным именем ищутся как в явном виде, так и в CAB-архивах Выбирается самый новый по дате файл из имеющихся на компе. На Vista-Win 8.1 эта процедура нафиг не нужна, ибо необходимые файлы всегда есть в папке DriverDirectory\3 А папки типа ServicePackSourcePath и SystemInstallPath на этих системах вообще отсутствуют, по крайней мере в реестре нет ключей, которые им соответствуют Да в общем-то и на XP если это SP3 с обновлениями поиск в CAB-ах не нужен, правильные самые свежие файлы лежат не в них. Но тем не менее я решил не портить идеологию старого кода и переписать его по честному. Ну, вроде все сделал, работает как должно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 23:30 |
|
|
start [/forum/topic.php?fid=20&fpage=83&tid=1401464]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 174ms |
0 / 0 |