标签: fileinfo

如何检查文件夹中是否存在文件?

我需要检查文件夹中是否存在xml文件.

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory);
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
    log.Info("no files present")
}
Run Code Online (Sandbox Code Playgroud)

这是检查文件夹中存在的文件的最佳方法.

我需要检查一个xml文件是否存在

c# xml file fileinfo

100
推荐指数
5
解决办法
39万
查看次数

具有多个扩展名的GetFiles

可能重复:
您可以使用多个过滤器调用Directory.GetFiles()吗?

如何过滤多个分机?

我试过了:

FileInfo[] Files = dinfo.GetFiles("*.jpg;*.tiff;*.bmp");
FileInfo[] Files = dinfo.GetFiles("*.jpg,*.tiff,*.bmp");
Run Code Online (Sandbox Code Playgroud)

.net c# getfiles fileinfo

85
推荐指数
5
解决办法
12万
查看次数

快速获取特定路径中的所有文件和目录

我正在创建一个备份应用程序,其中c#扫描目录.在我使用这样的东西之前,为了获取目录中的所有文件和子文件:

DirectoryInfo di = new DirectoryInfo("A:\\");
var directories= di.GetFiles("*", SearchOption.AllDirectories);

foreach (FileInfo d in directories)
{
       //Add files to a list so that later they can be compared to see if each file
       // needs to be copid or not
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,有时无法访问文件,我会收到几个错误.我得到的一个错误示例是:错误

结果我创建了一个递归方法,它将扫描当前目录中的所有文件.如果该目录中有目录,那么将再次调用该方法传递该目录.关于这个方法的好处是我可以将文件放在try catch块中,如果没有错误,可以选择将这些文件添加到List,如果我有错误,则将目录添加到另一个列表.

try
{
    files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);               
}
catch
{
     //info of this folder was not able to get
     lstFilesErrors.Add(sDir(di));
     return;
}
Run Code Online (Sandbox Code Playgroud)

所以这个方法效果很好,唯一的问题是当我扫描一个大目录时需要很多次.我怎么能加快这个过程?我的实际方法是这样,以防你需要它.

private void startScan(DirectoryInfo di)
{
    //lstFilesErrors is a list of MyFile objects
    // I …
Run Code Online (Sandbox Code Playgroud)

c# performance fileinfo

67
推荐指数
3
解决办法
16万
查看次数

我可以使用.NET中的FileInfo.CopyTo()显示文件复制进度吗?

我在c#(.NET 2.0 Framework)中创建了一个复制实用程序,它复制文件,目录和递归子目录等.该程序有一个GUI,显示当前正在复制的文件,当前文件编号(序列),总数要复制的文件数和复制操作的完成百分比.还有一个进度条,它基于当前文件/总文件.

我的问题与复制大文件有关.我一直无法找到一种方法来指示大文件的总复制进度(使用我当前使用FileInfo.CopyTo方法的类结构).作为一种解决方法,我将文件复制操作和GUI显示分离到它们自己的线程,并设置一个视觉提示来显示正在完成的工作.至少用户知道程序没有被冻结并且仍在复制文件.

能够基于总字节数显示进度或者具有从FileInfo.CopyTo方法触发的某种类型的事件会更好,该方法指示从当前文件复制的总字节数.

我知道FileInfo.Length属性,所以我确信MacGuyver有一种基于此的事件,并且在GUI端有一个处理器读取更新的处理程序(可能基于检查FileInfo).使用某种类型的计时器的目标对象的长度属性?).

有谁知道我要忽视的方法.如果我可以避免它,我宁愿不重写我的类来通过流复制字节并以这种方式跟踪它(虽然我想我可能会坚持走那条路).

提前致谢

PS - 我现在一直坚持使用.NET 2.0框架,所以任何需要> = 3.0的功能的解决方案都不适合我.

PPS - 我对任何.NET语言的解决方案都很开放,而不仅仅是c#.

.net c# copy fileinfo

30
推荐指数
5
解决办法
4万
查看次数

FileInfo.Extension是否返回最后的*.*模式或其他内容?

我很好奇以下是什么行为:

FileInfo info = new FileInfo("C:/testfile.txt.gz");
string ext = info.Extension;
Run Code Online (Sandbox Code Playgroud)

这会返回".txt.gz"还是".gz"?

更多扩展的行为是什么,例如".txt.gz.zip"或类似的东西?

编辑:

要清楚,我已经测试了这个.我想要解释一下这个属性.

c# string file-extension fileinfo

26
推荐指数
3
解决办法
2万
查看次数

c#替换文件中的字符串

替换HTML文件内容的一部分时,String.Replace似乎无法正常工作.例如,String.Replace替换</body></html>blah blah blah </body></html> html> - 注意第二个HTML结束标记未正确关闭,因此在用户在浏览器中呈现页面时显示.

任何人都知道它为什么不按预期工作?

StreamReader sr = fi.OpenText;
String fileContents = sr.ReadToEnd();
sr.close();
fileContents = fileContents.Replace("<body>", "<body onload='jsFx();' />");
fileContents = fileContents.Replace("</body>","blah blah blah </body>");

StreamWriter sw = new StreamWriter(fi.OpenWrite());
sw.WriteLine(contents);
sw.close();
Run Code Online (Sandbox Code Playgroud)

c# file-io fileinfo streamwriter

23
推荐指数
2
解决办法
4万
查看次数

.NET FileInfo.LastWriteTime和FileInfo.LastAccessTime是错误的

当我调用FileInfo(path).LastAccessTimeFileInfo(path).LastWriteTime正在写入的文件时,它返回创建文件的时间,而不是上次写入文件的时间(即现在).

有没有办法获得这些信息?

编辑:到目前为止的所有回复.我没有尝试,Refresh()但也没有尝试过.我返回文件开始写入的时间.静态方法也是如此,并创建了一个新的实例FileInfo.

Codymanix可能有答案,但我没有运行Windows Server(使用Windows 7),我不知道设置的测试位置.

编辑2:没有人觉得这个功能似乎不起作用很有趣?

.net c# windows fileinfo

21
推荐指数
4
解决办法
2万
查看次数

File.Delete()与FileInfo.Delete()

使用File对象的静态方法与创建新FileInfo对象和调用这些方法之间有很大区别吗?

c# file-io fileinfo

14
推荐指数
2
解决办法
8852
查看次数

上传文件中的Finfo_file确定mime-type

我试图确定上传文件的mime类型,我想使用fileinfo(),这是我一直在尝试,它不工作:

$uploadedfile = $_FILES['soup']['tmp_name'];
if(isset($uploadedfile))
{
    $uploadedname = $_FILES['soup']['name'];
    $file=$uploadedsong;
    $file.=$uploadedname;
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    $mime = finfo_file($finfo, $file);
Run Code Online (Sandbox Code Playgroud)

不幸的是,finfo_file似乎没有运行,我假设我有以下$file设置不正确,有没有办法,我可以使用$_FILE这样的新上传的文件正确地做到这一点?或者我是以完全不正当的方式解决这个问题.使用我直接在另一个文件中预先设置的文件,并且设置$file="folder/file.doc"正常.

php linux fileinfo mime-types

14
推荐指数
1
解决办法
2万
查看次数

不使用System.IO.FileInfo获取文件大小?

是否可以在不使用C#的情况下获取文件的大小System.IO.FileInfo

我知道你可以分别使用Path.GetFileName(yourFilePath)和得到其他东西,比如Name和Extension Path.GetExtension(yourFilePath),但显然不是文件大小?有没有其他方法我可以获得文件大小而不使用System.IO.FileInfo

唯一的原因是,如果我是正确的,FileInfo会抓取比我真正需要的更多的信息,因此如果我需要的唯一东西是文件的大小,那么收集所有这些FileInfo需要更长的时间.有更快的方法吗?

c# filesize fileinfo filepath

13
推荐指数
3
解决办法
2万
查看次数