c#Directory.GetFiles提供了驱动器c上的8.3文件名

c#Directory.GetFiles提供了驱动器c上的8.3文件名,c#,C#,我试图从目录中读取文件,但从驱动器C读取的文件格式为8.3:ABCDEF~1.EXT。在其他驱动器上,它就像一个符咒 一些代码: String[] newFiles = Directory.GetFiles(outpath); label1.Text = newFiles[0]; 有什么想法吗?我甚至不知道如何搜索这个问题。尝试使用DirectoryInfo.GetFiles而不是DirectoryInfo.GetFiles。这将返回具有更多文件元数据的FileInfo对象。我不知道这会有什么

我试图从目录中读取文件,但从驱动器C读取的文件格式为8.3:ABCDEF~1.EXT。在其他驱动器上,它就像一个符咒

一些代码:

String[] newFiles = Directory.GetFiles(outpath);
label1.Text = newFiles[0];

有什么想法吗?我甚至不知道如何搜索这个问题。

尝试使用DirectoryInfo.GetFiles而不是DirectoryInfo.GetFiles。这将返回具有更多文件元数据的FileInfo对象。我不知道这会有什么效果,但值得一试

FileInfo[] newFiles = DirectoryInfo.GetFiles(outpath);
label1.Text = newFiles[0].Name;

尝试使用DirectoryInfo.GetFiles而不是DirectoryInfo.GetFiles。这将返回具有更多文件元数据的FileInfo对象。我不知道这会有什么效果,但值得一试

FileInfo[] newFiles = DirectoryInfo.GetFiles(outpath);
label1.Text = newFiles[0].Name;

你的磁盘是如何格式化的?如果不是NTFS,则可能是问题所在。此外,文件命名约定称为两个分区都是NTFS。谢谢你的更正。示例文件:README~1.srt,所以是8:3。至于其他问题:.NET4.5,Win7.SP1。嗯。。什么是“点”呢/位ynes指的是小端或大端,这意味着高阶位分别位于左侧或右侧。你是little endian的道具。你的磁盘是如何格式化的?如果不是NTFS,则可能是问题所在。此外,文件命名约定称为两个分区都是NTFS。谢谢你的更正。示例文件:README~1.srt,所以是8:3。至于其他问题:.NET4.5,Win7.SP1。嗯。。什么是“点”呢/位ynes指的是小端或大端,这意味着高阶位分别位于左侧或右侧。您是little endian上的道具。谢谢您的回答,但是将类型从String[]更改为FileInfo[]会导致错误(返回类型错误)。根据msdn,GetFiles的返回类型是String。@MartinFejes是的,很抱歉我漏掉了一个细节。它在
DirectoryInfo
类中,而不是
目录
类中。因此没有转换发生,但我会尝试另一种方法。它更有用。谢谢您的回答,但是将类型从String[]更改为FileInfo[]会导致错误(返回类型错误)。根据msdn,GetFiles的返回类型是String。@MartinFejes是的,很抱歉我漏掉了一个细节。它在
DirectoryInfo
类中,而不是
目录
类中。因此没有转换发生,但我会尝试另一种方法。它更有用。