这是方法:
private void Compressions(string zipFile,string sources)
{
try
{
string zipFileName = zipFile;
string source = sources;
string output = @"c:\temp";
string programFilesX86 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86) + "\\Diagnostic Tool\\7z.dll";
if (File.Exists(programFilesX86))
{
SevenZipExtractor.SetLibraryPath(programFilesX86);
}
else
{
string path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\7z.dll";
SevenZipExtractor.SetLibraryPath(path);
}
string programFiles = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) + "\\Diagnostic Tool\\7z.dll";
if (File.Exists(programFiles))
{
SevenZipExtractor.SetLibraryPath(programFiles);
}
else
{
if (File.Exists(programFilesX86))
{
SevenZipExtractor.SetLibraryPath(programFilesX86);
}
else
{
string path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\7z.dll";
SevenZipExtractor.SetLibraryPath(path);
}
}
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.Zip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
string t = Path.Combine(output, zipFileName);
compressor.CompressDirectory(source, t);
this.explorerWindow = Process.Start("explorer", String.Format("/select,{0}", t));
this.TopMost = true;
}
catch (Exception err)
{
Logger.Write("Zip file error: " + err.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
在底部,变量t包含目录和文件名.例如:"c:\ temp\test.txt"我想得到这个文件名大小.
我该怎么做 ?
Dai*_*Dai 22
由于某种原因,静态类File不包含Size(String fileName)方法,而是需要这样做:
Int64 fileSizeInBytes = new FileInfo(fileName).Length;
Run Code Online (Sandbox Code Playgroud)
不要担心new FileInfo分配:
FileInfo不拥有任何非托管资源(即它不是IDisposable)FileInfo构造函数很便宜:构造函数只是获取规范化路径Path.GetFullPath并执行FileIOPermission- 它将规范化路径作为.NET存储String在实例字段中.大部分工作都在Length属性getter中:它本身就是Win32的包装器GetFileAttributesEx- 所以执行的操作几乎与它是static实用方法时的操作相同.
由于新FileInfo对象是短暂的,这意味着GC将作为第0代对象快速收集它.FileInfo堆上几个字符串(的字段)的开销实际上可以忽略不计.
| 归档时间: |
|
| 查看次数: |
14270 次 |
| 最近记录: |