标签: fileinfo

从NTFS-MFT参考编号获取文件信息

在我的C#应用​​程序中,我已经有办法检查文件系统,但我想利用从主文件表(MFT)读取,因为它更快.我理解1)它是专有规范,因此如有更改,恕不另行通知; 2)只有在应用程序在管理权限下运行时才能访问它.

我设法通过此代码读取主文件表.从MFT查询中,我得到一个文件名和一个所谓的文件引用号.我找不到的是如何转换到.NET FileInfo对象,甚至转换到Windows API文件句柄,以便我可以获得有关文件/文件夹的更多信息,例如:文件大小,完整路径,日期邮票等

.net c# fileinfo ntfs-mft

5
推荐指数
1
解决办法
2146
查看次数

创建目录不会将Exists属性更新为true

我有以下示例代码。

private DirectoryInfo PathDirectoryInfo
{
    get
    {
        if (_directoryInfo == null)
        {
            // Some logic to create the path
            // var path = ...
            _directoryInfo = new DirectoryInfo(path);
        }
        return _directoryInfo;
    }
}

public voide SaveFile(string filename)
{
    if (!PathDirectoryInfo.Exists)
    {
         PathDirectoryInfo.Create();
    }

     // PathDirectoryInfo.Exists returns false despite the folder has been created.
     bool folderCreated = PathDirectoryInfo.Exists;  // folderCreated  == false

    // Save the file
    // ...
}
Run Code Online (Sandbox Code Playgroud)

根据MSDN

Exists属性:如果文件或目录存在,则为true;否则为false。否则为假。

创建目录后,为什么Exists返回false?我想念什么吗?

c# io directoryinfo fileinfo

5
推荐指数
1
解决办法
304
查看次数

ASP.NET MVC获取View的最后修改日期/ FileInfo

我需要在工作中的每个应用程序页面上包含上次修改日期.我过去通过在WebForms母版页底部包含对<%= LastModified%>的引用来执行此操作,该页面将返回当前.aspx页面的上次修改日期.我的代码甚至会检查相关的.aspx.cs文件,比较最后修改的日期,并返回最近的日期.

有谁知道你是否可以阅读MVC视图的FileInfo?如果可能的话,我想将它包含在母版页中.

我有一个基本控制器,所有接线都准备就绪.我需要知道的是如何访问当前视图的FileInfo.

namespace MyMVCApp.Controllers
{
    public abstract class SiteController : Controller
    {
        public SiteController()
        {
            ViewData["modified"] = NEED TO GET FILEINFO OF CURRENT VIEW HERE;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc master-pages fileinfo last-modified

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

C#FileInfo - 查找重复的文件

我有一个FileInfo包含~200.000个文件条目的数组.我需要找到所有具有相同文件名的文件.我需要每个重复文件的目录名和文件名的结果,因为我想在之后重命名它们.

我已经尝试过了:

  • 比较每个条目与整个列表2对于"循环"//坏主意,这将需要几小时甚至几天^^
  • 尝试使用Linq排序//因为我没有使用Linq之前我有困难写出正确的声明,也许有人可以帮助我:)

c# file fileinfo

4
推荐指数
1
解决办法
6567
查看次数

如何比较两个不同文件夹中的文件并执行条件复制

我需要将所有文件从一个文件夹复制(Source)到另一个文件夹(Destination).我还需要比较两个文件夹并增加一个计数器,如果两个文件夹的内容与名称完全匹配,则计数器停止在100.

我不需要比较每个文件的大小,只需要比较名称.

这是我尝试过但我没有得到如上所述的欲望结果.

我在这里引用一些资源:http: //msdn.microsoft.com/en-us/library/bb546137.aspx

class Program
{
    class FileCompare : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo>
    {
        public FileCompare() { }

        public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2)
        {
            return (f1.Name == f2.Name &&
                    f1.Length == f2.Length);
        }
        public int GetHashCode(System.IO.FileInfo fi)
        {
            string s = String.Format("{0}{1}", fi.Name, fi.Length);
            return s.GetHashCode();
        }
    }

    static void Main(string[] args)
    {

        int i = 1;

        string sourcePath = @"C:\Users\Administrator\Desktop\Source";
        string destinationPath = @"C:\Users\Administrator\Desktop\Dest";

        string fileName = System.IO.Path.GetFileName(sourcePath);

        string source = System.IO.Path.Combine(sourcePath, fileName); …
Run Code Online (Sandbox Code Playgroud)

c# directory io file-io fileinfo

4
推荐指数
1
解决办法
9025
查看次数

如何在Android中获取pdf文件的页数?

你能帮我找出 Android 上 pdf 文档的页数吗?该文档至少支持 api 版本 16。我正在提取文档信息,但找不到获取总页数的解决方案。这就是我到目前为止所做的:

private void extractDocumentDataFromUri(Uri uri)
    {
        String[] dataFileds = new String[]{
                MediaStore.MediaColumns.DATA,
                OpenableColumns.DISPLAY_NAME,
                OpenableColumns.SIZE};

        Cursor cursor = context.getContentResolver().query(uri, dataFileds, null, null, null);
        cursor.moveToFirst();

        contentUrl = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
        title = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
        size = cursor.getInt(cursor.getColumnIndex(OpenableColumns.SIZE));

        cursor.close();

        contentType = context.getContentResolver().getType(uri);
    }
Run Code Online (Sandbox Code Playgroud)

pdf android fileinfo

4
推荐指数
1
解决办法
4942
查看次数

如何在C#中测试文件是否为.Net程序集

我写了以下代码:

public DataTable GetDotNetAssemblies(string baseDirectory)
{
    DataTable MethodResult = null;
    try
    {
        if (Directory.Exists(baseDirectory))
        {
            List<string> FilePaths = NetworkConnection.GetAllFilesUnderDirectory(baseDirectory);

            DataTable dt = new DataTable();
            dt.Columns.Add("Directory");
            dt.Columns.Add("Filename");
            dt.Columns.Add("Date modified");
            dt.Columns.Add("Bytes");
            dt.Columns.Add("User modified");

            foreach (string FilePath in FilePaths)
            {
                DataRow dr = dt.NewRow();

                FileInfo f = new FileInfo(FilePath);

                List<string> AllowedExtensions = new List<string>();
                AllowedExtensions.Add(".exe");
                AllowedExtensions.Add(".dll");

                if (AllowedExtensions.Contains(f.Extension.ToLower()))
                {
                    dr["Directory"] = f.Directory;
                    dr["Filename"] = f.Name;
                    dr["Date modified"] = f.LastWriteTime;
                    dr["Bytes"] = f.Length.ToString();

                    string UserModified = "";

                    try
                    {
                        UserModified = f.GetAccessControl().GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();

                    }
                    catch …
Run Code Online (Sandbox Code Playgroud)

.net c# datatable file fileinfo

4
推荐指数
1
解决办法
1375
查看次数

FileInfo 锁定文件!

想象一个 winform 应用程序,它将更新的程序集从源文件夹 A 复制到目标文件夹 B。我使用简单的 DirectoryInfo.GetFiles 方法来填充列表视图,比较文件夹 A 和 B 中程序集的版本;如果某些程序集较新,我将启动更新方法。在这种方法中,在复制之前,我尝试一下B文件夹中的所有文件是否未被使用:

var B = new DirectoryInfo("myBfolder");
foreach (var file in aFolder.GetFiles())
{
    try
    {
        //File not in use
        File.Open(file.FullName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
    }
    catch (Exception ex)
    {
        //File in use!
    }
}
Run Code Online (Sandbox Code Playgroud)

好吧,因为之前的 UpdateListView 代码使用 FileInfo 来获取要显示的信息,所以我的所有文件都被使用了!

FileInfo 锁定文件!这可能吗?

有人可以建议一种方法来绕过这个问题吗?

谢谢你,南多

.net locking fileinfo

3
推荐指数
1
解决办法
8968
查看次数

文件或文件夹重命名为小写在 C# 中使用 DirectoryInfo/FileInfo.MoveTo()

我有一个程序可以将文件或文件夹重命名为小写名称。我写了这段代码:

    private void Replace(string FolderLocation, string lastText, string NewText)
    {
        if (lastText == "")
        {
            lastText = " ";
        }
        if (NewText == "")
        {
            NewText = " ";
        }

        DirectoryInfo i = new DirectoryInfo(FolderLocation);
        string NewName = "";
        if (checkBox2.Checked)
        {
            if (i.Parent.FullName[i.Parent.FullName.Length - 1].ToString() != "\\") //For parents like E:/
            {
                NewName = i.Parent.FullName + "\\" + i.Name.Replace(lastText, NewText);
            }
            else
            {
                NewName = i.Parent.FullName + i.Name.Replace(lastText, NewText);
            }

                NewName = NewName.ToLower();


            if (NewName != i.FullName)
            {
                 i.MoveTo(NewName); …
Run Code Online (Sandbox Code Playgroud)

.net c# directoryinfo fileinfo file-rename

3
推荐指数
1
解决办法
7682
查看次数

MB 和字节之间的文件大小差异

我试图理解以下问题。我正在读取文件的文件信息,如下所示:

FileInfo info = new FileInfo(path);
Run Code Online (Sandbox Code Playgroud)

然后,当我这样做时,代码会为我的文件返回16599774info.Length字节。当我将字节转换为MB时,我得到15.8 MB

有人可以向我解释一下字节大小与 MB 大小之间的区别吗?

c# fileinfo

3
推荐指数
1
解决办法
2138
查看次数