1. 将winform压缩包转换为二进制数据,使用流或文件流将文件读取到内存中,然后通过System.Convert.ToBase64String()将其转换为二进制字符串;
2. 将二进制字符串存入数据库中,可以使用SqlCommand对象,将二进制字符串插入到指定的数据库表中;
3. 从数据库中读取winform压缩包,使用SqlDataReader对象,读取指定的表中的二进制字符串,然后使用System.Convert.FromBase64String()将其转换为流或文件流;
4. 将流或文件流写入到本地文件中,即可获取winform压缩包。
配置文件可以是任何形式,可以是xml或者txt都行,比如数据库的连接配置比如:
<?xml version="1.0" standalone="yes"?>//这句一定要有,下面的你随意写
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=192.168.118.21Initial Catalog=PreMixUser Id =saPassword =sa" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
这就是个配置文件,在winform里面直接用DataSet的ReadXml()方法就能读取到里面的值,
简单例子:
<?xml version="1.0" standalone="yes"?>//这句一定要有,下面的你随意写
<a>
<b>你好啊!</b>
</a>
然后你在winform里DataSet的ReadXml(XML文件路径),然后得到的就是a表里的b列的数据,就是你好啊!,就得到了,看看表的视图就清楚了。不懂继续追问
当然了都需要引入System.IO这个命名空间第一个:
public static long GetDirectoryLength(string dirPath)
{
//判断给定的路径是否存在,如果不存在则退出
if (!Directory.Exists(dirPath))
return 0
long len = 0
//定义一个DirectoryInfo对象
DirectoryInfo di = new DirectoryInfo(dirPath)
//通过GetFiles方法,获取di目录中的所有文件的大小
foreach (FileInfo fi in di.GetFiles())
{
len += fi.Length
}
//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归
DirectoryInfo[] dis = di.GetDirectories()
if (dis.Length >0)
{
for (int i = 0i <dis.Lengthi++)
{
len += GetDirectoryLength(dis[i].FullName)
}
}
return len
}
第二个
//也是利用递归的思想,只不过是通过File类的Exits方法来判断
//所给路径中所对应的是否为文件
public static long FileSize(string filePath)
{
long temp = 0
//判断当前路径所指向的是否为文件
if (File.Exists(filePath) == false)
{
string[] str1 = Directory.GetFileSystemEntries(filePath)
foreach (string s1 in str1)
{
temp += FileSize(s1)
}
}
else
{
//定义一个FileInfo对象,使之与filePath所指向的文件向关联,
//以获取其大小
FileInfo fileInfo = new FileInfo(filePath)
return fileInfo.Length
}
return temp
}
其实删除文件夹的思想与这个是一样的,设置要简单很多,只要简单的判断一下当前的是文件还是文件夹,如果是文件则删除.是文件夹则递归
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)