• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Lấy đường dẫn của các thư mục đặc biệt

Các thủ thuật về hệ thống, thư mục, tập tin và mạng

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Lấy đường dẫn của các thư mục đặc biệt

Gửi bàigửi bởi vo_minhdat2007 » T.Ba 20/01/2009 3:51 pm

Thủ thuật: Lấy đường dẫn của các thư mục đặc biệt
Tác giả: vo_minhdat2007
Mô tả: Search không thấy trên diễn đàn có cái này. Post lên cho mọi người tham khảo :D.


Dùng My.Computer.FileSystem.SpecialDirectories. Chỉ có thế ;)

Mã: Chọn hết

  1. MessageBox.Show("Thư mục My Documents : " & My.Computer.FileSystem.SpecialDirectories.MyDocuments)
  2. 'Trả về D:\Documents trên máy em :D



PhuongThanh37
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 87
Ngày tham gia: T.Sáu 09/09/2005 1:38 pm
Đến từ: Liên Hà, Đông Anh, HN
Liên hệ:

Re: Lấy đường dẫn của các thư mục đặc biệt

Gửi bàigửi bởi PhuongThanh37 » T.Tư 21/01/2009 6:01 pm

Trong API Giude có. Không biết dùng đc với .NET ko
[vb]
  1. Const CSIDL_DESKTOP = &H0
  2. Const CSIDL_PROGRAMS = &H2
  3. Const CSIDL_CONTROLS = &H3
  4. Const CSIDL_PRINTERS = &H4
  5. Const CSIDL_PERSONAL = &H5
  6. Const CSIDL_FAVORITES = &H6
  7. Const CSIDL_STARTUP = &H7
  8. Const CSIDL_RECENT = &H8
  9. Const CSIDL_SENDTO = &H9
  10. Const CSIDL_BITBUCKET = &HA
  11. Const CSIDL_STARTMENU = &HB
  12. Const CSIDL_DESKTOPDIRECTORY = &H10
  13. Const CSIDL_DRIVES = &H11
  14. Const CSIDL_NETWORK = &H12
  15. Const CSIDL_NETHOOD = &H13
  16. Const CSIDL_FONTS = &H14
  17. Const CSIDL_TEMPLATES = &H15
  18. Const MAX_PATH = 260
  19. Private Type SHITEMID
  20.     cb As Long
  21.     abID As Byte
  22. End Type
  23. Private Type ITEMIDLIST
  24.     mkid As SHITEMID
  25. End Type
  26. Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long
  27. Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
  28. Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
  29. Private Sub Form_Load()
  30.     'KPD-Team 1998
  31.     'URL: http://www.allapi.net/
  32.     'E-Mail: KPDTeam@Allapi.net
  33.     'Show an about window
  34.     ShellAbout Me.hWnd, App.Title, "Created by the KPD-Team 1999", ByVal 0&
  35.     'Set the graphical mode to persistent
  36.     Me.AutoRedraw = True
  37.     'Print the folders to the form
  38.     Me.Print "Start menu folder: " + GetSpecialfolder(CSIDL_STARTMENU)
  39.     Me.Print "Favorites folder: " + GetSpecialfolder(CSIDL_FAVORITES)
  40.     Me.Print "Programs folder: " + GetSpecialfolder(CSIDL_PROGRAMS)
  41.     Me.Print "Desktop folder: " + GetSpecialfolder(CSIDL_DESKTOP)
  42. End Sub
  43. Private Function GetSpecialfolder(CSIDL As Long) As String
  44.     Dim r As Long
  45.     Dim IDL As ITEMIDLIST
  46.     'Get the special folder
  47.     r = SHGetSpecialFolderLocation(100, CSIDL, IDL)
  48.     If r = NOERROR Then
  49.         'Create a buffer
  50.         Path$ = Space$(512)
  51.         'Get the path from the IDList
  52.         r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
  53.         'Remove the unnecessary chr$(0)'s
  54.         GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
  55.         Exit Function
  56.     End If
  57.     GetSpecialfolder = ""
  58. End Function
[/vb]
Uống Chanh & nghe Chanh hát

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Lấy đường dẫn của các thư mục đặc biệt

Gửi bàigửi bởi vo_minhdat2007 » T.Tư 21/01/2009 6:06 pm

Hix, vì nó quá dài và rắc rối, em mới post cái này, chứ với .NET thì chỉ vậy :D, hơn nữa phải đổi Long -> Integer/InPtr nữa :(

Hình đại diện của người dùng
xuanquy_th
Guru
Guru
Bài viết: 792
Ngày tham gia: T.Ba 05/08/2008 9:15 pm
Đến từ: Thanh Hoá
Has thanked: 1 time
Been thanked: 10 time
Liên hệ:

Re: Lấy đường dẫn của các thư mục đặc biệt

Gửi bàigửi bởi xuanquy_th » T.Tư 21/01/2009 7:46 pm

Áp dụng cho cả VB6 và VB2K5 :D

Mã: Chọn hết

  1.  
  2. Dim i As Integer
  3. For i = 1 To 255
  4.     MsgBox(Environ(i))
  5. Next i
Khi Chúa Trời đóng cánh cửa này lại, Ngài sẽ mở một cánh cửa khác cho ta.
Nhưng ta thường nhìn quá lâu vào cánh cửa đã đóng nên không thấy được có một cánh cửa khác đang mở ra cho ta!!!

Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: Lấy đường dẫn của các thư mục đặc biệt

Gửi bàigửi bởi clarkkent » T.Hai 25/05/2009 5:05 pm

Mã: Chọn hết

  1. Environment.GetFolderPath((Environment.SpecialFolder.Startup)) 'startup
  2. Environment.GetFolderPath((Environment.SpecialFolder.ProgramFiles)) 'program files
  3. Environment.GetFolderPath((Environment.SpecialFolder.System)) 'system
  4. ...
  5.  
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...


Quay về “[.NET] Hệ thống - Tập tin - Thư mục và Mạng”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách