Avatar billede m0n0l1th Nybegynder
20. marts 2003 - 19:58 Der er 9 kommentarer og
1 løsning

Hent filename ud!

Jeg vil gerne kunne hente filnavnet på en fil ud i en string. Jeg kan også læse filnavnet med public static void Main(string[] args)ved at læse på plads nr. 0 i arrayet. Men jeg får det ud som 8 char, ligesom i dos.
Problmet sker når at jeg højreklikker på en fil og derefter henter filnavnet ud. (det virker fint når man drag and dropper filen hen på .exe filen)

Nogen forslag til hvordan jeg får hele filnavnet ud?
Avatar billede burningice Nybegynder
20. marts 2003 - 20:56 #1
du siger filnavnet... tænker du på filnavnet på den assembly du står i?
i så fald kan du gøre sådan her:

string filename = System.Reflection.Assembly.GetAssembly(typeof(dinklasse)).Location;
Avatar billede burningice Nybegynder
20. marts 2003 - 20:57 #2
der var jeg vist lidt hurtigt.. det giver bare locationen... prøv

.FullName eller .GetName istedet :)
Avatar billede m0n0l1th Nybegynder
20. marts 2003 - 21:04 #3
Nej jeg kunne ikke få det til at virke med .FullName eller .GetName. Det bliver stadig hentet ud som om det var i dos. f.eks. "bowli~1". istedet for "bowling".
Avatar billede burningice Nybegynder
23. marts 2003 - 14:49 #4
kunne man evt. få lov at se den stump kode der skriver navnet ud?
Avatar billede Syska Mester
25. marts 2003 - 11:53 #5
med på en lytter
Avatar billede pjakobse Nybegynder
07. april 2003 - 20:56 #6
Jeg kunne ikke finde nogen pæn .Net måde at konvertere mellem Kort og Langt navn men her er et eksempel der benytter det gode gamle Windows SDK:

using System;
using System.Diagnostics;
using System.Text;
using System.Runtime.InteropServices;

namespace PathNames
{
  class PathNames
  {
    [DllImport("Kernel32.dll", EntryPoint = "GetShortPathName", CharSet = CharSet.Unicode)]
    private extern static ulong GetShortPathName(string longpath, StringBuilder shortpath, ulong size);
    [DllImport("Kernel32.dll", EntryPoint = "GetLongPathName", CharSet = CharSet.Unicode)]
    private extern static ulong GetLongPathName(string shortpath, StringBuilder longpath, ulong size);

    static void Main(string[] args)
    {
      // Find et filnavn vi kan arbejde med
      string org_path=Process.GetCurrentProcess().MainModule.FileName;

      // Alloker output buffer
      StringBuilder path=new StringBuilder(260);

      // Konverter til Kort navn
      GetShortPathName(org_path,path,260);
      System.Console.WriteLine("Kort navn:{0}",path);

      // Konverter til Langt navn
      GetLongPathName(org_path,path,260);
      System.Console.WriteLine("Langt navn:{0}",path);
    }
  }
}
Avatar billede m0n0l1th Nybegynder
08. april 2003 - 20:28 #7
Hey tak! det var lige der der skulle til :D
Avatar billede m0n0l1th Nybegynder
08. april 2003 - 20:30 #8
Arhg af en eller anden grund kan jeg ikke vælge at give pjakobse points, kan kun vælge mig selv :|
Avatar billede burningice Nybegynder
08. april 2003 - 20:45 #9
m0n0l1th>> det er fordi at han ikke har svaret
Avatar billede pjakobse Nybegynder
08. april 2003 - 21:33 #10
OK hvis du vil af med pointene
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester