Convert Short path to Long path.


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Page 1 of 2 12 LastLast
Results 1 to 15 of 19

Thread: Convert Short path to Long path.

  1. #1
    Mark Alexander Bertenshaw Guest

    Convert Short path to Long path.

    Hi -

    I am using Windows NT 4, and I want to be able to convert the short path
    which is returned with Command$ with a full path. Unfortunately, the
    GetLongPathName() function is only on Window 2000 and above. I was looking
    at the shell libararies, but can't really find anything appropriate.

    Any ideas as to how I could do this?

    Thanks,

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  2. #2
    Juergen Thuemmler Guest

    Re: Convert Short path to Long path.

    > Any ideas as to how I could do this?
    >


    The following works for me:
    Juergen.

    'GetTerm() works similar to "Split()"
    'CharCount() counts the given characters in a string
    '-------------------------------------------------------
    '# Gets the lon filename from DOS name
    Function GetLongName$(ByVal DOSName$, Optional was% = 0)
    Dim pos%, pos1%, i&, lpos%
    Dim verz$, BZP$, dummy$, ds$

    On Error GoTo Handler

    DOSName = LCase$(DOSName)
    GetLongName = DOSName
    If InStr(DOSName, "~") = 0 Then Exit Function

    pos = InStr(DOSName, ":"): lpos = 0
    If pos = 0 Then
    pos1 = InStr(DOSName, "\\")
    If pos1 = 0 Then Exit Function '# Only name; no Drag&Drop
    End If

    If pos > 2 Then '# There are command line parameters
    before the filename
    BZP = Left$(DOSName, pos - 2)
    DOSName = Mid$(DOSName, pos - 1)
    End If

    '# Replace long directory names
    If pos1 = 0 Then '# no network
    pos = CharCount(DOSName, "\")
    If pos > 0 Then
    lpos = InStr(DOSName, "\")
    verz = Left$(DOSName, lpos - 1)
    For i = IIf(pos1 = 0, 1, 4) To pos - 1
    ds = GetTerm(DOSName, "\", i, i + 1)
    ds = verz & "\" & ds
    dummy = verz & "\" & Dir(ds, vbDirectory Or vbHidden Or vbReadOnly Or
    vbSystem)
    verz = dummy
    Next
    End If
    Else '# Network
    verz = GetTerm(DOSName, "\", 0, 4)
    pos = CharCount(DOSName, "\")
    For i = 4 To pos - 1
    ds = GetTerm(DOSName, "\", i, i + 1)
    ds = verz & "\" & ds
    dummy = verz & "\" & Dir(ds, vbDirectory Or vbHidden Or vbReadOnly Or
    vbSystem)
    verz = dummy
    Next
    End If

    If was = 1 Then '# Only directory name required
    GetLongName = verz '& "\"
    Exit Function
    End If

    pos = GetLastPos(DOSName, "\")
    dummy = verz & "\" & Dir(verz & Mid$(DOSName, pos))

    GetLongName = IIf(FS(BZP), BZP, "") & LCase$(dummy)
    Exit Function

    Handler:
    End Function




  3. #3
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    "Juergen Thuemmler" <thue@gmx.de> wrote in message
    news:3d5b9a11$1@10.1.10.29...
    > > Any ideas as to how I could do this?
    > >

    >
    > The following works for me:
    > Juergen.
    >
    > 'GetTerm() works similar to "Split()"
    > 'CharCount() counts the given characters in a string
    > '-------------------------------------------------------
    > '# Gets the lon filename from DOS name
    > Function GetLongName$(ByVal DOSName$, Optional was% = 0)
    > Dim pos%, pos1%, i&, lpos%
    > Dim verz$, BZP$, dummy$, ds$
    >
    > On Error GoTo Handler
    >
    > DOSName = LCase$(DOSName)
    > GetLongName = DOSName
    > If InStr(DOSName, "~") = 0 Then Exit Function
    >
    > pos = InStr(DOSName, ":"): lpos = 0
    > If pos = 0 Then
    > pos1 = InStr(DOSName, "\\")
    > If pos1 = 0 Then Exit Function '# Only name; no Drag&Drop
    > End If
    >
    > If pos > 2 Then '# There are command line parameters
    > before the filename
    > BZP = Left$(DOSName, pos - 2)
    > DOSName = Mid$(DOSName, pos - 1)
    > End If
    >
    > '# Replace long directory names
    > If pos1 = 0 Then '# no network
    > pos = CharCount(DOSName, "\")
    > If pos > 0 Then
    > lpos = InStr(DOSName, "\")
    > verz = Left$(DOSName, lpos - 1)
    > For i = IIf(pos1 = 0, 1, 4) To pos - 1
    > ds = GetTerm(DOSName, "\", i, i + 1)
    > ds = verz & "\" & ds
    > dummy = verz & "\" & Dir(ds, vbDirectory Or vbHidden Or vbReadOnly

    Or
    > vbSystem)
    > verz = dummy
    > Next
    > End If
    > Else '# Network
    > verz = GetTerm(DOSName, "\", 0, 4)
    > pos = CharCount(DOSName, "\")
    > For i = 4 To pos - 1
    > ds = GetTerm(DOSName, "\", i, i + 1)
    > ds = verz & "\" & ds
    > dummy = verz & "\" & Dir(ds, vbDirectory Or vbHidden Or vbReadOnly Or
    > vbSystem)
    > verz = dummy
    > Next
    > End If
    >
    > If was = 1 Then '# Only directory name required
    > GetLongName = verz '& "\"
    > Exit Function
    > End If
    >
    > pos = GetLastPos(DOSName, "\")
    > dummy = verz & "\" & Dir(verz & Mid$(DOSName, pos))
    >
    > GetLongName = IIf(FS(BZP), BZP, "") & LCase$(dummy)
    > Exit Function
    >
    > Handler:
    > End Function


    Juergen -

    Thanks for the code. CharCount() is easy; but what is the spec for
    GetTerm() function ?
    I still can't believe that this isn't done by the OS or Explorer. Oh
    well...

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  4. #4
    Jonathan Wood Guest

    Re: Convert Short path to Long path.

    Mark,

    > Thanks for the code. CharCount() is easy; but what is the spec for
    > GetTerm() function ?
    > I still can't believe that this isn't done by the OS or Explorer. Oh
    > well...


    One approach is to use FindFirstFile. It returns the long filename in the
    cFileName member of the passed structure. Seemed to work okay for me.

    --
    Jonathan Wood
    SoftCircuits Programming
    http://www.softcircuits.com



  5. #5
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    Jonathan -

    Good idea! So all you need do is to parse each directory in the pathname,
    and run it through FindFirstFile().

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK

    "Jonathan Wood" <jwood@softcircuits.com> wrote in message
    news:3d5bb3e1@10.1.10.29...
    > Mark,
    >
    > > Thanks for the code. CharCount() is easy; but what is the spec for
    > > GetTerm() function ?
    > > I still can't believe that this isn't done by the OS or Explorer. Oh
    > > well...

    >
    > One approach is to use FindFirstFile. It returns the long filename in the
    > cFileName member of the passed structure. Seemed to work okay for me.
    >
    > --
    > Jonathan Wood
    > SoftCircuits Programming
    > http://www.softcircuits.com
    >
    >




  6. #6
    Bob Butler Guest

    Re: Convert Short path to Long path.

    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    message news:3d5bbda5$1@10.1.10.29
    > Jonathan -
    >
    > Good idea! So all you need do is to parse each directory in the
    > pathname, and run it through FindFirstFile().


    Not that it's the best thing to use, but the Dir$ function also expands
    individual names:
    ?dir$("c:\progra~1",vbDirectory)
    Program Files





  7. #7
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    "Bob Butler" <butlerbob@earthlink.net> wrote in message
    news:3d5bbe92@10.1.10.29...
    > "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > message news:3d5bbda5$1@10.1.10.29
    > > Jonathan -
    > >
    > > Good idea! So all you need do is to parse each directory in the
    > > pathname, and run it through FindFirstFile().

    >
    > Not that it's the best thing to use, but the Dir$ function also expands
    > individual names:
    > ?dir$("c:\progra~1",vbDirectory)
    > Program Files
    >


    Trouble is, it doesn't work with UNC paths.

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  8. #8
    Bob Butler Guest

    Re: Convert Short path to Long path.

    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    message news:3d5bc02d$1@10.1.10.29
    > "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > news:3d5bbe92@10.1.10.29...
    >> "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    >> message news:3d5bbda5$1@10.1.10.29
    >>> Jonathan -
    >>>
    >>> Good idea! So all you need do is to parse each directory in the
    >>> pathname, and run it through FindFirstFile().

    >>
    >> Not that it's the best thing to use, but the Dir$ function also
    >> expands individual names:
    >> ?dir$("c:\progra~1",vbDirectory)
    >> Program Files
    >>

    >
    > Trouble is, it doesn't work with UNC paths.


    Ah. Didn't realize that.




  9. #9
    Bob Butler Guest

    Re: Convert Short path to Long path.

    "Bob Butler" <butlerbob@earthlink.net> wrote in message
    news:3d5bc11f@10.1.10.29
    > "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > message news:3d5bc02d$1@10.1.10.29
    >> "Bob Butler" <butlerbob@earthlink.net> wrote in message
    >> news:3d5bbe92@10.1.10.29...
    >>> "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    >>> message news:3d5bbda5$1@10.1.10.29
    >>>> Jonathan -
    >>>>
    >>>> Good idea! So all you need do is to parse each directory in the
    >>>> pathname, and run it through FindFirstFile().
    >>>
    >>> Not that it's the best thing to use, but the Dir$ function also
    >>> expands individual names:
    >>> ?dir$("c:\progra~1",vbDirectory)
    >>> Program Files
    >>>

    >>
    >> Trouble is, it doesn't work with UNC paths.

    >
    > Ah. Didn't realize that.


    I just tried it to a UNC on a WinNT share... it worked fine.




  10. #10
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    > "Jonathan Wood" <jwood@softcircuits.com> wrote in message
    > news:3d5bb3e1@10.1.10.29...
    > > Mark,
    > >
    > > > Thanks for the code. CharCount() is easy; but what is the spec for
    > > > GetTerm() function ?
    > > > I still can't believe that this isn't done by the OS or Explorer. Oh
    > > > well...

    > >
    > > One approach is to use FindFirstFile. It returns the long filename in

    the
    > > cFileName member of the passed structure. Seemed to work okay for me.
    > >
    > > --
    > > Jonathan Wood
    > > SoftCircuits Programming
    > > http://www.softcircuits.com
    > >

    > Jonathan -
    >
    > Good idea! So all you need do is to parse each directory in the pathname,
    > and run it through FindFirstFile().
    >
    > --
    > Mark Alexander Bertenshaw
    > Programmer/Analyst
    > Chordiant Software, Inc.
    > Brentford
    > UK
    >


    Well - using that info, I managed to get down to this code (using the
    WinU.tlb type library):

    ----------------------------------------------------------------------------
    -------------------

    Private Function ConvertToLongPath(ByRef sShortPath As String) As String
    Dim lPosBackslash As Long
    Dim lPosLastBackslash As Long
    Dim sFilename As String
    Dim udtFindData As WIN32_FIND_DATA
    Dim sTempDir As String

    Select Case Mid$(sShortPath, 2, 1)
    Case "\"
    ' UNC path
    lPosBackslash = InStr(3, sShortPath, "\", vbBinaryCompare)
    lPosLastBackslash = InStr(lPosBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    ConvertToLongPath = Left$(sShortPath, lPosLastBackslash - 1)
    Case ":"
    ' Drive
    lPosLastBackslash = InStr(3, sShortPath, "\", vbBinaryCompare)
    ConvertToLongPath = Left$(sShortPath, 2)
    End Select

    lPosBackslash = InStr(lPosLastBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    Do Until lPosBackslash = 0
    sTempDir = Mid$(sShortPath, lPosLastBackslash + 1, lPosBackslash -
    lPosLastBackslash - 1)
    FindClose FindFirstFile(ConvertToLongPath & "\" & sTempDir,
    udtFindData)
    ConvertToLongPath = ConvertToLongPath & "\" &
    SysAllocString(udtFindData.cFileName)
    lPosLastBackslash = lPosBackslash
    lPosBackslash = InStr(lPosLastBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    Loop

    sTempDir = Mid$(sShortPath, lPosLastBackslash + 1)
    FindClose FindFirstFile(ConvertToLongPath & "\" & sTempDir, udtFindData)
    ConvertToLongPath = ConvertToLongPath & "\" &
    SysAllocString(udtFindData.cFileName)

    End Function

    ----------------------------------------------------------------------------
    -------------------

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  11. #11
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    "Bob Butler" <butlerbob@earthlink.net> wrote in message
    news:3d5bc4d3@10.1.10.29...
    > "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > news:3d5bc11f@10.1.10.29
    > > "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > > message news:3d5bc02d$1@10.1.10.29
    > >> "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > >> news:3d5bbe92@10.1.10.29...
    > >>> "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > >>> message news:3d5bbda5$1@10.1.10.29
    > >>>> Jonathan -
    > >>>>
    > >>>> Good idea! So all you need do is to parse each directory in the
    > >>>> pathname, and run it through FindFirstFile().
    > >>>
    > >>> Not that it's the best thing to use, but the Dir$ function also
    > >>> expands individual names:
    > >>> ?dir$("c:\progra~1",vbDirectory)
    > >>> Program Files
    > >>>
    > >>
    > >> Trouble is, it doesn't work with UNC paths.

    > >
    > > Ah. Didn't realize that.

    >
    > I just tried it to a UNC on a WinNT share... it worked fine.
    >
    >
    >


    Apologies - I must have done it wrong!

    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  12. #12
    Mark Alexander Bertenshaw Guest

    Re: Convert Short path to Long path.

    With Bill's very good point about Dir$, this is even simpler, and it is all
    pure VB!

    --------------------------------------------------------------------

    Private Function ConvertToLongPath(ByRef sShortPath As String) As String
    Dim lPosBackslash As Long
    Dim lPosLastBackslash As Long
    Dim sTempDir As String

    Select Case Mid$(sShortPath, 2, 1)
    Case "\"
    ' UNC path
    lPosBackslash = InStr(3, sShortPath, "\", vbBinaryCompare)
    lPosLastBackslash = InStr(lPosBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    ConvertToLongPath = Left$(sShortPath, lPosLastBackslash - 1)
    Case ":"
    ' Drive
    lPosLastBackslash = InStr(3, sShortPath, "\", vbBinaryCompare)
    ConvertToLongPath = Left$(sShortPath, 2)
    End Select

    lPosBackslash = InStr(lPosLastBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    Do Until lPosBackslash = 0
    sTempDir = Mid$(sShortPath, lPosLastBackslash + 1, lPosBackslash -
    lPosLastBackslash - 1)
    ConvertToLongPath = ConvertToLongPath & "\" & Dir$(ConvertToLongPath
    & "\" & sTempDir, vbDirectory)
    lPosLastBackslash = lPosBackslash
    lPosBackslash = InStr(lPosLastBackslash + 1, sShortPath, "\",
    vbBinaryCompare)
    Loop

    sTempDir = Mid$(sShortPath, lPosLastBackslash + 1)
    ConvertToLongPath = ConvertToLongPath & "\" & Dir$(ConvertToLongPath &
    "\" & sTempDir, vbDirectory)

    End Function

    --------------------------------------------------------------------


    --
    Mark Alexander Bertenshaw
    Programmer/Analyst
    Chordiant Software, Inc.
    Brentford
    UK



  13. #13
    Bob Butler Guest

    Re: Convert Short path to Long path.

    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    message news:3d5bcfca$1@10.1.10.29
    > With Bill's very good point about Dir$, this is even simpler, and it
    > is all pure VB!
    >


    Bill?

    The problem with using Dir$ is that if you call this routine from a
    procedure that is using Dir$ to scan a directory you will abort that scan.
    That was why I first noted that it probably isn't the best approach.




  14. #14
    Jonathan Wood Guest

    Re: Convert Short path to Long path.

    I might point out that I seem to recall someone posting somewhere that
    FindFirstFile did not work in one particular case. I don't recall the
    details but it may have involved a UNC paths. I have no way to determine if
    that was a valid post or not. The bottom line is that some testing might be
    in order.

    If FindFirstFile does not work, then I don't know what else you could do. I
    don't like the idea of writing a routine from scratch as having the OS
    perform this tasks provides a number of benefits. Not the least of which is
    that the code would be updated if the logic with a particular OS needs to
    change.

    I wrote a routine to do this as part of an assembly language DLL. But I like
    the idea of using Dir from VB. (Even though care is needed to ensure you
    don't mess up Dir for the calling code.)

    --
    Jonathan Wood
    SoftCircuits Programming
    http://www.softcircuits.com

    "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in message
    news:3d5bcd51$1@10.1.10.29...
    > "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > news:3d5bc4d3@10.1.10.29...
    > > "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > > news:3d5bc11f@10.1.10.29
    > > > "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > > > message news:3d5bc02d$1@10.1.10.29
    > > >> "Bob Butler" <butlerbob@earthlink.net> wrote in message
    > > >> news:3d5bbe92@10.1.10.29...
    > > >>> "Mark Alexander Bertenshaw" <mark.bertenshaw@virgin.net> wrote in
    > > >>> message news:3d5bbda5$1@10.1.10.29
    > > >>>> Jonathan -
    > > >>>>
    > > >>>> Good idea! So all you need do is to parse each directory in the
    > > >>>> pathname, and run it through FindFirstFile().
    > > >>>
    > > >>> Not that it's the best thing to use, but the Dir$ function also
    > > >>> expands individual names:
    > > >>> ?dir$("c:\progra~1",vbDirectory)
    > > >>> Program Files
    > > >>>
    > > >>
    > > >> Trouble is, it doesn't work with UNC paths.
    > > >
    > > > Ah. Didn't realize that.

    > >
    > > I just tried it to a UNC on a WinNT share... it worked fine.
    > >
    > >
    > >

    >
    > Apologies - I must have done it wrong!
    >
    > --
    > Mark Alexander Bertenshaw
    > Programmer/Analyst
    > Chordiant Software, Inc.
    > Brentford
    > UK
    >
    >




  15. #15
    Karl E. Peterson Guest

    Re: Convert Short path to Long path.

    Hi Mark --

    > I am using Windows NT 4, and I want to be able to convert the short path
    > which is returned with Command$ with a full path. Unfortunately, the
    > GetLongPathName() function is only on Window 2000 and above. I was looking
    > at the shell libararies, but can't really find anything appropriate.
    >
    > Any ideas as to how I could do this?


    I read the rest of the thread, and it looks like too much work. <g> The code below
    is from my FileInfo sample (http://www.mvps.org/vb/samples.htm). Oughta work for
    this exercise. As a bonus, it also insures the path is proper-cased for display
    purposes.

    Later... Karl
    --
    [Microsoft Basic: 1976-2001, RIP]



    Option Explicit

    Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA"
    (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
    Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As
    Long

    Private Const MAX_PATH = 260
    Private Const INVALID_HANDLE_VALUE = -1
    Private Const FILE_ATTRIBUTE_DIRECTORY = &H10

    Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
    End Type

    Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
    End Type

    Public Function ProperCasePath(ByVal PathIn As String) As String
    Dim hSearch As Long
    Dim wfd As WIN32_FIND_DATA
    Dim PathOut As String
    Dim i As Long

    ' Trim trailing backslash, unless root dir.
    If Right(PathIn, 1) = "\" Then
    If Right(PathIn, 2) <> ":\" Then
    PathIn = Left(PathIn, Len(PathIn) - 1)
    Else
    ProperCasePath = UCase(PathIn)
    Exit Function
    End If
    End If

    ' Check for UNC share and return just that,
    ' if that's all that's left of PathIn.
    If InStr(PathIn, "\\") = 1 Then
    i = InStr(3, PathIn, "\")
    If i > 0 Then
    If InStr(i + 1, PathIn, "\") = 0 Then
    ProperCasePath = PathIn
    Exit Function
    End If
    End If
    End If

    ' Insure that path portion of string uses the
    ' same case as the real pathname.
    If InStr(PathIn, "\") Then
    For i = Len(PathIn) To 1 Step -1
    If Mid(PathIn, i, 1) = "\" Then
    ' Found end of previous directory.
    ' Recurse back up into path.
    PathOut = ProperCasePath(Left(PathIn, i - 1)) & "\"

    ' Use FFF to proper-case current directory.
    hSearch = FindFirstFile(PathIn, wfd)
    If hSearch <> INVALID_HANDLE_VALUE Then
    Call FindClose(hSearch)
    If wfd.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY Then
    ProperCasePath = PathOut & TrimNull(wfd.cFileName)
    End If
    End If

    ' Bail out of loop.
    Exit For
    End If
    Next i
    Else
    ' Just a drive letter and colon,
    ' upper-case and return.
    ProperCasePath = UCase(PathIn)
    End If
    End Function

    Private Function TrimNull(ByVal StrIn As String) As String
    Dim nul As Long
    ' Truncate input string at first null.
    ' If no nulls, perform ordinary Trim.
    nul = InStr(StrIn, vbNullChar)
    Select Case nul
    Case Is > 1
    TrimNull = Left(StrIn, nul - 1)
    Case 1
    TrimNull = ""
    Case 0
    TrimNull = Trim(StrIn)
    End Select
    End Function






Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center