1

私はC#プログラミングに慣れていません.フルパスを取得する方法を提案してください。フルパスではなくリストボックスにファイル名のみを入力したいので、コードでfile.Nameのみを使用します

私のコードは次のとおりです。

listBox1.DataSource = GetFolder("..\\video\\");

private static List<string> GetFolder(string folder)
{
    List<string> FileList = new List<string>();

    var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                                                    SearchOption.AllDirectories)
    foreach (FileInfo file in allFiles)
    {
        FileList.Add(file.FullName);             
    }    

    return FileList;  
}
4

4 に答える 4

1
FileInfo(path).Directory.FullPath

コードの実際の問題は、この行にセミコロンがありません

var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                                                    SearchOption.AllDirectories)

そのはず

var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                                                    SearchOption.AllDirectories);
于 2013-01-09T07:13:15.390 に答える
1

私が正しければ、値として FullPath が必要ですが、表示されるのは FileName だけです。これを実現するにはFileInfo、これらの値の両方を含む の List を使用して、どのメンバーが値で、どのメンバーが表示されるべきかを ListBox に伝えます。

this.listBox1.DisplayMember = "Name";
this.listBox1.ValueMember = "FullName";
listBox1.DataSource = GetFolder("..\\video\\");

Player.URL = Convert.ToString(listBox1.SelectedValue);  // Instead of SelectedItem

private static List<FileInfo> GetFolder(string folder)
{
    List<FileInfo> fileList = new List<FileInfo>();

    foreach (FileInfo file in new DirectoryInfo(folder).GetFiles("*.mpg", SearchOption.AllDirectories))
    {
       fileList.Add(file); 
    }    

    return fileList;  
}
于 2013-01-09T07:23:30.510 に答える
0
 FileList.Add(file.FullName);

この行を次のように変更してください

 FileList.Add(file.Name );
于 2013-01-09T07:14:41.987 に答える
0
  listBox1.DataSource = GetFolder("..\\video\\");

  private static List<string> GetFolder(string folder)
  {
        List<string> FileList = new List<string>();

        var allFiles = new DirectoryInfo(folder).GetFiles("*.mpg", 
                                                SearchOption.AllDirectories)
        foreach (FileInfo file in allFiles)
        { 
              FileList.Add(file.Name);             
        }    

        return FileList;  
  }
于 2013-01-09T07:24:15.437 に答える