Filesystems 文件路径/大小(C)#

Filesystems 文件路径/大小(C)#,filesystems,clr,directory,Filesystems,Clr,Directory,如何获取文件的文件目录(C:\myfolder\subfolder\mydoc.pdf)。我还想添加子文件夹的大小,最后是主文件夹的大小。这是用于.NET CLR的,我需要将其与SQL Server 2005集成以生成SSRS报告。您可以使用,以仅获取文件的目录路径: using System.IO; string directoryName = Path.GetDirectoryName(@"C:\myfolder\subfolder\mydoc.pdf"); // directoryName

如何获取文件的文件目录(C:\myfolder\subfolder\mydoc.pdf)。我还想添加子文件夹的大小,最后是主文件夹的大小。这是用于.NET CLR的,我需要将其与SQL Server 2005集成以生成SSRS报告。

您可以使用,以仅获取文件的目录路径:

using System.IO;
string directoryName = Path.GetDirectoryName(@"C:\myfolder\subfolder\mydoc.pdf");
// directoryName now contains "C:\myfolder\subfolder"
要计算目录和子目录的大小,可以执行以下操作:

public static long DirSize(DirectoryInfo d) 
{    
    long Size = 0;    
    // Add file sizes.
    FileInfo[] fis = d.GetFiles();
    foreach (FileInfo fi in fis) 
    {      
        Size += fi.Length;    
    }
    // Add subdirectory sizes.
    DirectoryInfo[] dis = d.GetDirectories();
    foreach (DirectoryInfo di in dis) 
    {
        Size += DirSize(di);   
    }
    return(Size);  
}
您可以使用,仅获取文件的目录路径:

using System.IO;
string directoryName = Path.GetDirectoryName(@"C:\myfolder\subfolder\mydoc.pdf");
// directoryName now contains "C:\myfolder\subfolder"
要计算目录和子目录的大小,可以执行以下操作:

public static long DirSize(DirectoryInfo d) 
{    
    long Size = 0;    
    // Add file sizes.
    FileInfo[] fis = d.GetFiles();
    foreach (FileInfo fi in fis) 
    {      
        Size += fi.Length;    
    }
    // Add subdirectory sizes.
    DirectoryInfo[] dis = d.GetDirectories();
    foreach (DirectoryInfo di in dis) 
    {
        Size += DirSize(di);   
    }
    return(Size);  
}

我在将长数据类型与SQL Server程序集集成时遇到问题。是否有与SQL Server兼容的long替代品?long是您应该在C#代码中使用的—您需要在数据库中找到与之匹配的最合适的数据类型。我现在无法检查,但我确定存在一个合适的64位整数类型。我收到错误“为“DirSize”创建函数失败,因为参数“@dir”的t-SQL和CLR类型不匹配。”我的CREATE FUNCTION语句是:CREATE FUNCTION DirSize(@dir VARCHAR(MAX))返回BIGINT外部名称getdirsize.ShowDirSize.DirSize getdirsize是我的sql程序集的名称看起来数据类型问题在于“dir”参数,可能是字符串路径,而不是数字。您传递的是正确的吗?@Khoth什么数据类型与DirectoryInfo兼容?我在将其与SQL Server程序集集成时遇到了长数据类型的问题。是否有与SQL Server兼容的long替代品?long是您应该在C#代码中使用的—您需要在数据库中找到与之匹配的最合适的数据类型。我现在无法检查,但我确定存在一个合适的64位整数类型。我收到错误“为“DirSize”创建函数失败,因为参数“@dir”的t-SQL和CLR类型不匹配。”我的CREATE FUNCTION语句是:CREATE FUNCTION DirSize(@dir VARCHAR(MAX))返回BIGINT外部名称getdirsize.ShowDirSize.DirSize getdirsize是我的sql程序集的名称看起来数据类型问题在于“dir”参数,可能是字符串路径,而不是数字。您传递的是正确的吗?@Khoth什么数据类型与DirectoryInfo兼容?