2011-04-11 81 views
8

我正在使用.NET 2.0并且Linq无可奈何。我想检查文件是否存在于目录而不知道文件扩展名检查文件是否存在于忽略扩展名的目录中

我只需要完成这个逻辑。通过使用搜索模式,而忽略了文件

2.注册的文件,如果它们存在,数据绑定的扩展,提供Download links。如果文件不存在,然后开始字符串文件名提供了目录

1,检查文件存在上传文件。

更新: Directory.GetFiles()DirectoryInfo.GetFiles()确实解决了其中我检查文件的存在的部分。至于有关的FileInfo对象的表现,这些只是解决我的数据绑定提供下载的需求联系在一起

+1

什么部位是不是显而易见的吗?您在尝试撰写问题时已经提供了解决方案。 – 2011-04-11 09:03:34

+2

为什么你需要一个FileInfo对象? – 2011-04-11 09:05:21

+1

您可以为结果数组中的每个字符串创建一个FileInfo对象...您的问题是什么? – 2011-04-11 09:06:50

回答

20
DirectoryInfo root = new DirectoryInfo("your_directory_path"); 
FileInfo[] listfiles = root.GetFiles("dummy.*"); 
if (listfiles.Length > 0) 
{ 
    //File exists 
    foreach (FileInfo file in listfiles) 
     { 
      //Get Filename and link download here 
     } 
} 
else 
{ 
    //File does not exist 
    //Upload 
} 

希望这个作品

+1

Yup按我想要的方式工作。标记为答案谢谢 – Deeptechtons 2011-04-11 09:15:28

+1

显然通过GetFiles实例化FileInfos不是太昂贵。 – 2011-04-11 09:18:39

+1

@Martinho对评论问题发表了评论 – Deeptechtons 2011-04-11 09:27:23

4

要查看是否有文件存在同名,你能不能只用..

然而,Directory.GetFiles已经包括全路径

string [] files = Directory.GetFiles(Path,"name*"); 
bool exists = files.Length > 0; 

if (exists) 
{ 
    //Get file info - assuming only one file here.. 
    FileInfo fi = new FileInfo(files[0]); 

    //Or loop through all files 
    foreach (string s in files) 
    { 
     FileInfo fi = new FileInfo(s); 
     //Do something with fileinfo 
    } 
} 
+1

感谢指向我在正确的方向,你的可能是答案,但当可扩展性来@Hatake卡卡西答案看起来不错 – Deeptechtons 2011-04-11 09:14:39

2

您可以使用DirectoryInfo.GetFiles()FileInfo[]而不是String[]

+1

感谢指出我想简单。我正在使用重载的版本,而不是 – Deeptechtons 2011-04-11 09:13:30

相关问题