приложение для Windows Mobile - PullRequest
1 голос
/ 20 февраля 2012

в моем приложении, чтобы получить путь, я использую следующий код.

Dim path As String
Dim asm As [Assembly] = [Assembly].GetExecutingAssembly()
path = System.IO.Path.GetDirectoryName(asm.GetName().CodeBase)

это дает путь как \Application Data\ Но мне нужно \Program Files\, чтобы найти файл .sdf. как пройти этот путь?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Я обычно использую asm.CodeBase напрямую (но не с Windows Mobile). Это работает для вас?

0 голосов
/ 20 февраля 2012

Если вы работаете с Windows Mobile в версии 7 (Windows Phon), проверьте это: Код C #:

public static string GetFolderPath(SpecialFolder folder)
{
      //buffer to fill with path
      StringBuilder path = new StringBuilder(MaxPath);

      //pass stringbuilder and folder identifier to api function
      if(!Convert.ToBoolean(SHGetSpecialFolderPath(IntPtr.Zero,
         path, (int)folder, 0)))
      {
         throw new Exception("Cannot get folder path!");
      }

      return path.ToString();
}

[DllImport("coredll", EntryPoint="SHGetSpecialFolderPath",
   SetLastError=false)]
internal static extern int SHGetSpecialFolderPath(IntPtr hwndOwner,
   StringBuilder lpszPath, int nFolder, int fCreate);

Код VB.net:

Public Shared Function GetFolderPath(folder As SpecialFolder) As String
    'buffer to fill with path
    Dim path As New StringBuilder(MaxPath)

    'pass stringbuilder and folder identifier to api function
    If Not Convert.ToBoolean(SHGetSpecialFolderPath(IntPtr.Zero, path, CInt(folder), 0)) Then
        Throw New Exception("Cannot get folder path!")
    End If

    Return path.ToString()
End Function

<DllImport("coredll", EntryPoint := "SHGetSpecialFolderPath", SetLastError := False)> _
Friend Shared Function SHGetSpecialFolderPath(hwndOwner As IntPtr, lpszPath As StringBuilder, nFolder As Integer, fCreate As Integer) As Integer
End Function

Вы должны Import System.Environment, чтобы увидеть специальную папку Import System.Runtime.InteropServices чтобы увидеть DllImport

Для деталей: http://msdn.microsoft.com/en-us/library/aa446567.aspx#spfiles_topic_03

Пожалуйста, если это работает, пометьте мой ответ как Справа

...