获取文件的版本信息:
FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D:\\TEST.DLL",',',');
textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion;
更改文件属性,删除只读文件:
下例欲将E:\test.txt文件拷贝至D:\tmp\test.txt,但D:\tmp\test.txt已经存在。
//File.Copy(sourceFile,destinationFile,true,',','); 用来拷贝文件
//当destinationFile已经存在时,无法将文件file1拷贝到目标文件,
//因此先删除destination文件,File.Delete()方法不能删除只读文件,
//因此,如果文件属性为只读(Attributes属性中会包含有"ReadOnly"),
//先把文件属性重置为Normal,然后再删除:
string file1="E:\\test.txt";
string destinationFile="d:\\tmp\\test.txt";
if(File.Exists(destinationFile))
{
FileInfo fi=new FileInfo(destinationFile,',',');
if(fi.Attributes.ToString().IndexOf("ReadOnly")!=-1)
fi.Attributes=FileAttributes.Normal;
File.Delete(destinationFile,',',');
}
File.Copy(file1,destinationFile,true,',',');
判断文件是否存在:File.Exists(string filePath)
判断目录是否存在:Directory.Exists("D:\\LastestVersion")
按行读取文件:
int fileCount=0;
// Open the file just specified such that no one else can use it.
StreamReader sr = new StreamReader(textBox1.Text.Trim(),',',');
while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它
{
listBox1.Items.Add(sr.ReadLine(),',',');
fileCount++;
}
sr.Close(,',',');
按行写入文件:
StreamWriter sw = new StreamWriter("D:\\result.txt",',',');
for(int i=0;i<10;i++)
{
sw.WriteLine("这是第"+i.ToString()+"行数据",',',');
}
方法二:
private const int FO_DELETE = 0x3;
private const ushort FOF_NOCONFIRMATION = 0x10;
private const ushort FOF_ALLOWUNDO = 0x40;
[DllImport("shell32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
private static extern int SHFileOperation([In,Out] _SHFILEOPSTRUCT str,',',');
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public class _SHFILEOPSTRUCT
{
public IntPtr hwnd;
public UInt32 wFunc;
public string pFrom;
public string pTo;
public UInt16 fFlags;
public Int32 fAnyOperationsAborted;
public IntPtr hNameMappings;
public string lpszProgressTitle;
}
public static int Delete(string path)
{
_SHFILEOPSTRUCT pm = new _SHFILEOPSTRUCT(,',',');
pm.wFunc = FO_DELETE;
pm.pFrom = path + '\0';
pm.pTo = null;
pm.fFlags = FOF_ALLOWUNDO ¦ FOF_NOCONFIRMATION;
return SHFileOperation(pm,',',');
}
调用:Class1.Delete("C:\\temp.txt",',',');
注:返回值为0表示调用成功,非0表示调用失败。
需要引用System.Runtime.InteropServices命名空间。