搜档网
当前位置:搜档网 › 路径文件目录IO常见操作汇总转

路径文件目录IO常见操作汇总转

路径文件目录IO常见操作汇总转
路径文件目录IO常见操作汇总转

C 路径文件目录IO常见操作汇总转

文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。

主要内容:

一、路径的相关操作,如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容;

二、相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录;

三、文件、目录、驱动器的操作,如获取它们的基本信息,获取和设置文件和目录的属性,文件的版本信息,

搜索文件和目录,文件判等,复制、移动、删除、重命名文件和目录;

四、读写文件,包括临时文件,随机文件名等;

五、对文件系统的监视;

这一篇就先写一下前两部分。

一、路径相关操作

问题1:如何判定一个给定的路径是否有效/合法;

解决方案:通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以

根据它来判断路径中是否包含非法字符;

问题2:如何确定一个路径字符串是表示目录还是文件;

解决方案:

1、使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件;

2、上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得

其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件;

问题3:如何获得路径的某个特定部分(如文件名、扩展名等);

解决方案:

下面是几个相关方法:

Path.GetDirectoryName:返回指定路径字符串的目录信息;

Path.GetExtension:返回指定的路径字符串的扩展名;

Path.GetFileName:返回指定路径字符串的文件名和扩展名;

Path.GetFileNameWithoutExtension:返回不具有扩展名的路径字符串的文件名;

Path.GetPathRoot:获取指定路径的根目录信息;

(更多内容还请参考MSDN)

问题4:如何准确地合并两个路径而不用去担心那个烦人的"\"字符;

解决方案:

使用https://www.sodocs.net/doc/657456953.html,bine方法,它会帮你处理烦人的"\";

问题5:如何获得系统目录的的路径(如桌面,我的文档,临时文件夹等);

解决方案:

主要是使用System.Environment类的相关属性和方法:

Environment.SystemDirectory属性:获取系统目录的完全限定路径;

Environment.GetFolderPath方法:该方法接受的参数类型为

Environment.SpecialFolder枚举,

通过这个方法可以获得大量系统文件夹的路径,如我的电脑,我的电脑,桌面,系统目录等;

(更多内容还请参考MSDN);

Path.GetTempPath方法:返回当前系统的临时文件夹的路径;

问题6:如何判断一个路径是绝对路径还是相对路径;

解决方案:

使用Path.IsPathRooted方法;

问题7:如何读取或设置当前目录;

解决方案:

使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法;

问题8:如何使用相对路径;

解决方案:

设置当前目录后(见问题7),就可以使用相对路径了。对于一个相对路径,我们可以

使用Path.GetFullPath方法获得它的完全限定路径(绝对路径)。

注意:如果打算使用相对路径,建议你将工作目录设置为各个交互文件的共同起点,否则可能会引入

一些不易发现的安全隐患,被恶意用户利用来访问系统文件。

更多内容:

通常我们可以使用System.IO.Path类来处理路径。该类提供了一套方法和属性用于对包含文件或目录路径信息的字符串执行操作,这些操作是以跨平台的方式执行的,而这些方法和属性都是静态的。

注意路径仅仅是提供文件或目录位置的字符串。路径不必指向磁盘上的位置,例如,路径可以映射到内存中或设备上的位置。路径的准确格式是由当前平台确定的。例如,在某些系统上,路径可以驱动器号或卷号开始,而此元素在其他系统中是不存在的。在某些系统上,文件路径可以包含扩展名,扩展名指示在文件中存储的信息的类型。文件扩展名的格式是与平台相关的;例如,某些系统将扩展名的长度限制为3个字符,而其他系统则没有这样的限制。当前平台还确定用于分隔路径

中各元素的字符集,以及确定在指定路径时不能使用的字符集。因为这些差异,所以Path类的字段以及Path类的某些成员的准确行为是与平台相关的。

路径可以包含绝对或相对位置信息。绝对路径完整指定一个位置:文件或目录可被唯一标识,而与当前位置无关。相对路径指定部分位置:当定位用相对路径指定的文件时,当前位置用作起始点。

Path类的大多数成员不与文件系统交互,并且不验证路径字符串指定的文件是否存在。修改路径字符串的Path类成员(例如ChangeExtension)对文件系统中文件的名称没有影响。但Path成员确实验证指定路径字符串的内容;并且如果字符串包含在路径字符串中无效的字符(如InvalidPathChars中的定义),则引发ArgumentException异常。例如,在基于Windows的桌面平台上,无效路径字符可能包括引号(")、小于号()、大于号()、管道符号(|)、退格(\b)、空([message])以及从16到18和从20到25的Unicode字符。

Path类的成员使您可以快速方便地执行常见操作,例如确定文件扩展名是否是路径的一部分,以及将两个字符串组合成一个路径名。

多数情况下,如果这些方法接收了无效的路径会抛出异常,但如果路径名是因为包含了通配符(*或?)从而无效,则不会抛出异常(可以使用GetInvalidPathChars方法来非法的路径字符)。我们可以根据该原则判断一个路径是否合法。

二、相关的通用文件对话框

1、文件夹浏览对话框(FolderBrowserDialog类)

用户可以通过该对话框浏览、新建并选择文件夹

主要属性:

Description:树视图控件上显示的说明文本,如上图中的"选择要进行计算的目录";

RootFolder:获取或设置从其开始浏览的根文件夹,如上图中设置的我的电脑(默认为桌面);

SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文件夹,关闭对话框时根据该属性获取用户用户选定的路径;

ShowNewFolderButton:获取或设置是否显示新建对话框按钮;

ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由SelectedPath属性获取用户选定的路径;

dlgOpenFolder.Description="选择要进行计算的目录";

dlgOpenFolder.RootFolder=Environment.SpecialFolder.MyComputer;

dlgOpenFolder.ShowNewFolderButton=true;

DialogResult result=dlgOpenFolder.ShowDialog(this);

if(result==DialogResult.OK)

{

txtDirPath.Text=dlgOpenFolder.SelectedPath;

}

2、打开文件对话框(OpenFileDialog类)

用户可以通过该对话框选择一个文件

主要属性:

CheckFileExists:该值指示如果用户指定不存在的文件名,对话框是否显示警告;

FileName(s):获取或设置一个包含在文件对话框中选定的文件名的字符串;

Filter:获取或设置对话框的文件类型列表;

FilterIndex:对话框的文件类型列表的索引(基于1的);

InitialDirectory:获取或设置文件对话框显示的初始目录;

Multiselect:该值指示对话框是否允许选择多个文件;

ShowReadOnly:该值指示对话框是否包含只读复选框;

Title:获取或设置文件对话框标题;

OpenFile:打开用户选定的具有只读权限的文件;

ShowDialog:打开该模式对话框;

dlgOpenFile.Title="打开源文件";

dlgOpenFile.InitialDirectory=@"C:\Inetpub\";

dlgOpenFile.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";

dlgOpenFile.FilterIndex=2;

dlgOpenFile.ShowReadOnly=true;

DialogResult dr=dlgOpenFile.ShowDialog();

if(dr==DialogResult.OK)

{

string fileName=dlgOpenFile.FileName;

}

3、保存文件对话框(SaveFileDialog类)

用户可以通过该对话框保存一个文件

主要属性:

大部分与打开文件对话框类似,此处略过,下面几个值得注意:

CreatePrompt:该值指示如果用户指定不存在的文件,是否提示用户允许创建该文件;

OverwritePrompt:该值指示如果用户指定的文件名已存在,对话框是否显示警告;

主要方法:

OpenFile:打开用户选定的具有读/写权限的文件;

ShowDialog:打开该模式对话框;

示例代码:

dlgSaveFile.Title="打开目标文件";

dlgSaveFile.InitialDirectory=@"C:\Inetpub\";

dlgSaveFile.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";

dlgSaveFile.FilterIndex=2;

DialogResult dr=dlgSaveFile.ShowDialog();

if(dr==DialogResult.OK)

{

string fileName=dlgSaveFile.FileName;

}

至此,我们操作的都只是路径,要知道,这些路径仅仅是字符串,还没有涉及到文件系统中的真实文件。

三、文件和目录相关操作

文件和目录操作涉及的类主要是:FileInfo,DirectoryInfo,DriveInfo,可以认为它们的一个实例对应着一个文件、目录、驱动器。它们的用法类似,一般是将文件、目录或驱动器的路径作为参数传递给相应的构造函数创建一个实例,然后访问它们的属性和方法。

注意下面几点:

FileInfo类和DirectoryInfo类都继承自抽象类FileSystemInfo,FileSystemInfo类定义了一些通用的属性,如CreationTime、Exists等。但DriveInfo类没有继承FileSystemInfo类,所以它也就没有上面提到的那些通用属性了。

FileInfo类和DirectoryInfo类的对象公开的属性值都是第一次查询时获取的值,如果在以此查询之后文件或目录发生了改动,就必须调用它们的Refresh方法来更新这些属性。但DriveInfo则无需这么做,它的属性每次都会读取文件系统最新的信息。

在创建文件、目录或驱动器的实例时,如果使用了一个不存在的路径,并不会报错,这是你得到一个对象,该对象表示一个并不存在的实体,这意味着它的Exists属性(对于DriveInfo来说是IsReady属性)值为false。你仍然可以操作该实体,但如果尝试其它的大多数属性,就会引发相应的FileNotFoundException、DirectoryNotFoundException或DriveNotFoundException异常。

另外,还可以使用File/Directory类,这两个类的成员都是静态方法,所以如果只想执行一个操作,那么使用File/Directory中的静态方法的效率比使用相应的FileInfo/DirectoryInfo中的实例方法可能更高。所有的File/Directory方法都要求当前所操作的文件/目录的路径。注意:File/Directory类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用

FileInfo/DirectoryInfo的相应实例方法,因为并不总是需要安全检查。

下面是一些常见的问题:

问题1:如何获取指定文件的基本信息;

解决方案:可以使用FileInfo类的相关属性:

FileInfo.Exists:获取指定文件是否存在;

https://www.sodocs.net/doc/657456953.html,,FileInfo.Extensioin:获取文件的名称和扩展名;

FileInfo.FullName:获取文件的全限定名称(完整路径);

FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;

FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);

FileInfo.Length:获取文件的大小(字节数);

FileInfo.IsReadOnly:获取文件是否只读;

FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes 枚举,可以是多个值的组合(见问题2);

FileInfo.CreationTime、https://www.sodocs.net/doc/657456953.html,stAccessTime、https://www.sodocs.net/doc/657456953.html,stWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;

(更多内容还请参考MSDN)

问题2:如何获取和设置文件的属性,比如只读、存档、隐藏等;

解决方案:

使用FileInfo.Attributes属性可以获取和设置文件的属性,该属性类型为FileAttributes枚举,该枚举的每个值表示一种属性,FileAttributes枚举具有属性(Attribute)FlagsAttribute,所以该枚举的值可以进行组合,也就是一个文件可以同时拥有多个属性。下面看看具体的做法:

获取属性,比如判断一个文件是否是只读的:

//当文件具有其它属性时,这种做法会失败

if(file.Attributes==FileAttributes.ReadOnly)

{

chkReadonly.Checked=true;

}

//这种写法就不会有问题了,它只检查只读属性

if((file.Attributes&FileAttributes.ReadOnly)==FileAttributes.ReadOnly)

{

chkReadonly.Checked=true;

}

设置属性,比如添加和移除一个文件的只读属性:

if(chkReadonly.Checked)

{

//添加只读属性

file.Attributes|=FileAttributes.ReadOnly;

}

else

//移除只读属性

file.Attributes&=~FileAttributes.ReadOnly;

}

问题3:如何获取文件的版本信息(比如版本号,版权声明,公司名称等);

解决方案:

使用FileVersionInfo类,该类有大量的版本信息相关的属性。通过它的静态方法GetVersionInfo获得该类的一个实例,然后就可以访问指定文件的版本信息了,非常方便。如FileVersion表示文件版本号,LegalCopyright表示指定文件的版权声明,CompanyName表示指定文件的公司名称。(更多内容还请参考MSDN)

问题4:如何判断两个文件的内容是否相同(精确匹配);

解决方案:

使用System.security.Cryptography.HashAlgorithm类为每个文件生成一个哈希码,然后比较两个哈希码是否一致。

在比较文件内容的时候可以采用好几种方法。例如,检查文件的某一特定部分是否一致;如果愿意,你甚至可以逐字节读取文件,逐字节进行比较。这两种方法都是可以的,但在某些情况下,还是使用哈希码算法更为方便。

该算法为一个文件生成一个小的(通常约为20字节)二进制"指纹"(binary fingerprint)。从统计学角度看,不同的文件不可能生成相同的哈希码。事实上,即使是一个很小的改动(比如,修改了源文件中的一个bit),也会有50%的几率来改变哈希码中的每一个bit。因此,哈希码常常用于数据安全方面。

要生成一个哈希码,你必须首先创建一个HashAlgorithm对象,而这通常是调用HashAlgorithm.Create方法来完成的;然后调用https://www.sodocs.net/doc/657456953.html,puteHash方法,它会返回一个存储哈希码的字节数组。代码如下:

///summary

///判断两个文件内容是否一致

////summary public static bool IsFilesEqual(string fileName1,string fileName2)

using(HashAlgorithm hashAlg=HashAlgorithm.Create())

{

using(FileStream fs1=new FileStream(fileName1,FileMode.Open),fs2=new FileStream(fileName2,FileMode.Open))

{

byte hashBytes1=https://www.sodocs.net/doc/657456953.html,puteHash(fs1);

byte hashBytes2=https://www.sodocs.net/doc/657456953.html,puteHash(fs2);

//比较哈希码

return(BitConverter.ToString(hashBytes1)==BitConverter.ToString(hashByte s2));

}

}

}

问题5:如何获取指定目录的基本信息;

解决方案:可以使用DirectoryInfo类的相关属性和方法:

DirectoryInfo.Exists:获取指定目录是否存在;

https://www.sodocs.net/doc/657456953.html,:获取目录的名称;

DirectoryInfo.FullName:获取目录的全限定名称(完整路径);

DirectoryInfo.Attributes:获取或设置指定目录的属性,返回类型为FileAttributes枚举,可以是多个值的组合;

DirectoryInfo.CreationTime、https://www.sodocs.net/doc/657456953.html,stAccessTime、

https://www.sodocs.net/doc/657456953.html,stWriteTime:分别用于获取目录的创建时间、访问时间、修改时间;

DirectoryInfo.Parent:获取目录的上级目录,返回类型为DirectoryInfo;

DirectoryInfo.Root:获取目录的根目录,返回类型为DirectoryInfo;

问题6:如何获取指定目录包含的文件和子目录;

解决方案:

DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo,支持通配符查找;

DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,

返回类型为DirectoryInfo,支持通配符查找;

DirectoryInfo.GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,

返回类型为FileSystemInfo,支持通配符查找;

问题7:如何获得指定目录的大小;

解决方案:

检查目录内的所有文件,利用FileInfo.Length属性获取每个文件的大小,然后进行合计,然后使用递归算法处理所有的子目录的文件,参考下面代码:

///summary

///计算一个目录的大小

////summary

///param name="di"指定目录/param

///param name="includeSubDir"是否包含子目录/param

///returns/returns private long CalculateDirSize(DirectoryInfo di,bool includeSubDir)

{

long totalSize=0;

//检查所有(直接)包含的文件

FileInfo files=di.GetFiles();

foreach(FileInfo file in files)

{

totalSize+=file.Length;

}

//检查所有子目录,如果includeSubDir参数为true if(includeSubDir)

{

DirectoryInfo dirs=di.GetDirectories();

foreach(DirectoryInfo dir in dirs)

{

totalSize+=CalculateDirSize(dir,includeSubDir);

}

}

return totalSize;

}

问题8:如何使用通配符搜索指定目录内的所有文件;

解决方案:

使用DirectoryInfo.GetFiles方法的重载版本,它可以接受一个过滤表达式,返回FileInfo数组,另外它的参数还可以指定是否对子目录进行查找。如:

dir.GetFiles("*.txt",SearchOption.AllDirectories);

问题9:如何复制、移动、重命名、删除文件和目录;

解决方案:使用FileInfo和DirectoryInfo类。

下面是FileInfo类的相关方法:

FileInfo.CopyTo:将现有文件复制到新文件,其重载版本还允许覆盖已存在文件;

FileInfo.MoveTo:将指定文件移到新位置,并提供指定新文件名的选项,所以可以用来重命名文件(而不改变位置);FileInfo.Delete:永久删除文件,如果文件不存在,则不执行任何操作;

FileInfo.Replace:使用当前FileInfo对象对应文件的内容替换目标文件,而且指定另一个文件名作为被替换文件的备份,微软考虑实在周到。

下面是DirectoryInfo类的相关方法:

DirectoryInfo.Create:创建指定目录,如果指定路径中有多级目录不存在,该方法会一一创建;

DirectoryInfo.CreateSubdirectory:创建当前对象对应的目录的子目录;

DirectoryInfo.MoveTo:将目录(及其包含的内容)移动至一个新的目录,也可用来重命名目录;

DirectoryInfo.Delete:删除目录(如果它存在的话)。如果要删除一个包含子目录的目录,要使用它的重载版本,以指定递归删除。

注意到了没有?DirectoryInfo类少了一个CopyTo方法,不过我们可以通过递归来实现这个功能:

///summary

///复制目录到目标目录

////summary

///param name="source"源目录/param

///param name="destination"目标目录/param public static void CopyDirectory(DirectoryInfo source,DirectoryInfo destination)

{

//如果两个目录相同,则无须复制

if(destination.FullName.Equals(source.FullName))

{

return;

}

//如果目标目录不存在,创建它

if(!destination.Exists)

{

destination.Create();

}

//复制所有文件

FileInfo files=source.GetFiles();

foreach(FileInfo file in files)

{

//将文件复制到目标目录

file.CopyTo(https://www.sodocs.net/doc/657456953.html,bine(destination.FullName,https://www.sodocs.net/doc/657456953.html,),true);

}

//处理子目录

DirectoryInfo dirs=source.GetDirectories();

foreach(DirectoryInfo dir in dirs)

{

string destinationDir=https://www.sodocs.net/doc/657456953.html,bine(destination.FullName,https://www.sodocs.net/doc/657456953.html,);//递归处理子目录

CopyDirectory(dir,new DirectoryInfo(destinationDir));

}

}

问题10:如何获得计算机的所有逻辑驱动器;

解决方案:使用DriveInfo类(需要.NET 2.0)

DriveInfo.GetDrives():获得计算机的所有逻辑驱动器,返回类型为DriveInfo;

问题11:如何获取指定驱动器的信息;

解决方案:

https://www.sodocs.net/doc/657456953.html,:获取驱动器的名称(如C:\);

DriveInfo.DriveType:获取驱动器的类型(如Fixed,CDRom,Removable,Network等);

DriveInfo.DriveFormat:获取驱动器的格式(如NTFS,FAT32,CDFS,UDF等);

DriveInfo.IsReady:获取驱动器是否已准备好,比如CD是否已放入CD驱动器,如果驱动器没有准备好,访问其信息会引发IOException类型异常;

DriveInfo.AvailableFreeSpace:获取驱动器的可用空间;

DriveInfo.TotalFreeSpace:获取驱动器总的可用空间,它与AvailableFreeSpace的不同在于AvailableFreeSpace会磁盘配额的设置;

DriveInfo.TotalSize:获取驱动器总的空间;

DriveInfo.RootDirectory:获得驱动器的根目录(DirectoryInfo类型);

至此,我们已经了解了文件和目录相关的一些基本操作。

文件读写相关类介绍:

文件读写操作涉及的类主要是:

MarshalByRefObject类:允许在支持远程处理的应用程序中跨应用程序域边界访问对象;

BinaryReader类:用特定的编码将基元数据类型读作二进制值。

BinaryWriter类:以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

Stream类:提供字节序列的一般视图。

FileStream类:公开以文件为主的Stream,既支持同步读写操作,也支持异步读写操作。

MemoryStream类:创建其支持存储区为内存的流。

BufferedStream类:给另一流上的读写操作添加一个缓冲层。

TextReader类:表示可读取连续字符系列的阅读器。

TextWriter类:表示可以编写一个有序字符系列的编写器。

StreamReader类:实现一个TextReader,使其以一种特定的编码从字节流中读取字符。

StreamWriter类:实现一个TextWriter,使其以一种特定的编码向流中写入字符。

StringReader类:实现从字符串进行读取的TextReader。

StringWriter类:实现一个用于将信息写入字符串的TextWriter。该信息存储在基础StringBuilder中。

在使用它们之前最好能了解它们的继承关系,有助于作出最合适的选择:

另外还要注意一下FileInfo和File类的一些方法,如Create,CreateText,Open等,有时也会带来方便。

这些类的内容比较繁多,更多内容还请参考MSDN。

下面是一些常见的问题及其解决方案:

问题1:如何读写文本文件(并考虑不同的编码类型);

解决方案:

创建一个FileStream对象用以引用该文件。要写入文件,将FileStream对象封装在StreamWriter对象中,使用其重载了的Write方法;要读取文件,将FileStream对象封装在StreamReader对象中,使用其Read或ReadLine方法;

.NET Framework允许通过StreamWriter和StreamReader类操作任何流来读写文本文件。当使用StreamWriter类写入数据时,调用它的Write方法,该方法在重载后可以支持所有常见的C#数据类型,包括字符串、字符、整数、浮点数以及十进制数等。但Write方法总会将的得到的数据转换为文本,如果希望将这些文本转换回原来的数据类型,应使用WriteLine方法,以确保每个值都处于单独的一行上。

字符串的表现形式取决于你使用的编码,最常见的编码类型包括下面几种:ASCII,UTF-16,UTF-7,UTF-8。

.NET Framework在System.Text命名空间中为每种编码类型提供了一个类。在使用StreamWriter和StreamReader类时,可以指定需要的编码类型,或者使用默认的UTF-8。

而在读取文本文件时,则要使用StreamReader类的Read或ReadLine方法。Read 方法读取单个字符或者指定个数的字符,返回类型为字符或字符数组;ReadLine 方法则返回包含整行内容的字符串;ReadToEnd方法从当前位置读取至流的结尾。

(更多内容还请参考MSDN)

写入文本文件的示例:

using(FileStream fs=new FileStream(fileName,FileMode.Create))

{

//创建一个StreamWriter对象,使用UTF-8编码格式

using(StreamWriter writer=new StreamWriter(fs,Encoding.UTF8))

{

//分别写入十进制数,字符串和字符类型的数据

writer.WriteLine(123.45 M);

writer.WriteLine("String Data");

writer.WriteLine('A');

}

}

读取文本文件的示例:

//以只读模式打开一个文本文件

using(FileStream fs=new FileStream(fileName,FileMode.Open))

{

using(StreamReader reader=new StreamReader(fs,Encoding.UTF8))

{

string text=string.Empty;

while(!reader.EndOfStream)

{

text=reader.ReadLine();

txtMessage.Text+=text+Environment.NewLine;

}

}

}

问题2:如何读写二进制文件(使用强数据类型);

解决方案:

创建一个FileStream对象用以引用该文件。要写入文件,将FileStream对象封装在BinaryWriter对象中,使用其重载了的Write方法;要读取文件,将FileStream对象封装在BinaryReader对象中,使用相应数据类型的Read方法。

.NET Framework允许通过BinaryWriter和BinaryReader类操作任何流来读写二进制数据。当使用BinaryWriter类写入数据时,调用它的Write方法,该方法在重载后可以支持所有常见的C#数据类型,包括字符串、字符、整数、浮点数以及十进制数等,然后数据会被编码为一系列字节写入文件,也可以配置该过程中的编码类型。

在使用二进制文件时,一定要特别注意其中的数据类型。当你读取数据时,一定要使用BinaryReader类的某种强类型的Read方法。例如,要读取字符串,要使用ReadString方法。(BinaryWriter在写入二进制文件时总会记录字符串的长度以避免任何可能的错误)

写入文件的示例:

using(FileStream fs=new FileStream(fileName,FileMode.Create))

{

using(BinaryWriter writer=new BinaryWriter(fs))

{

//写入十进制数,字符串和字符

writer.Write(234.56 M);

writer.Write("String");

writer.Write('!');

}

}

读取文件的示例:

//以只读模式打开一个二进制文件

using(FileStream fs=new FileStream(fileName,FileMode.Open))

{

using(StreamReader sr=new StreamReader(fs))

如何修改文件夹存放路径

如何修改存放路径 (修改放到D盘或E盘) 首先要在“开始”——“运行”内输入“regedit”打开注册表编辑器,然后要 在“文件”下拉菜单中的“导出”功能备份好注册表,以防万一,接着在左 侧窗口依次打开: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\S Folders 在右侧窗口里,你看到的“名称”就代表那些特殊的文件夹,“数据”就是 它们所对应的默认存储路径。修改默认的路径就可以让你的桌面文件夹 移动了,下面是所有的. 下面介绍一下各个“名称”所代表的文件夹 名称含义默认路径 AppData 应用程序数据目录 C:\Documents and Settings\User name\Application Data Cookies Cookies路径 C:\Documents and Settings\User name\Cookies Desktop 桌面路径 C:\Documents and Settings\User name\桌面 Favorites 收藏夹 C:\Documents and Settings\User name\Favorites NetHood NetHood路径 C:\Documents and Settings\User name\NetHood

Personal 我的文档 C:\Documents and Settings\User name\My Documents PrintHood 打印 C:\Documents and Settings\User name\PrintHood Recent 文档项路径 C:\Documents and Settings\User name\Recent SendTo SendTo路径 C:\Documents and Settings\User name\SendTo Start Menu 开始菜单路径 C:\Documents and Settings\User name\「开 始」菜单 Templates 新建文件目录 C:\Documents and Settings\User name\Templates Programs 程序菜单路径 C:\Documents and Settings\User name\「开 始」菜单\程序 Startup 启动路径 C:\Documents and Settings\User name\「开始」菜 单\程序\启动 History 网页历史记录 C:\Documents and Settings\ User name \Local Settings\History My Pictures 图片收藏 C:\Documents and Settings\User name\My Documents\My Pictures My Music 我的音乐 C:\Documents and Settings\User name\My Documents\My Music My Video 我的视频 C:\Documents and Settings\User name\My Documents\My Videos Cache Internet临时文件夹 C:\ Documents and Settings\User name \Temporary Internet Files 这些文件夹称为Shell文件夹 其中“User name”为当前用户的名称 了解了对应的文件夹,就可以根据自己的需要去更改对应的路径了。 (千万不要在这儿改啊,那样可就瞎忙乎了,系统重起后它会恢复成原 来的路径) 在同一层中你可以看到一个“User Shell Folders”的子键,即在 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ User Shell Folders 这里包括了用户定制的所有Shell文件夹的值项。只要通过修改“数据”, 就可以改变它们的存储路径。双击需要修改的名称,在弹出的“编辑字 符串”的“数值数据”里填上你要更改的完整路径,按下“确定”就完成了。 如果没有你需要的,可以在右边窗口单击鼠标右键,选择“新建”菜单中 的“字符串值”命令,对应上表,添加一个用于Shell文件夹的字符串值。 在上面的文件夹中,并没有outlook的通讯簿和邮件存放路径,它们分 别在 通讯簿路径:

新风系统总结

中央新风系统 一、定义 中央新风系统:就是实现建筑物室内外空气一年365天,一天24小时不间断循环置换的集中控制系统。其能科学定义和组织室内空气流动路径,使室外的新鲜空气经过滤后源源不断送入室内,污浊的空气有组织、及时地排至室外。 VMC(自平衡式中央机械通风Ventilation Mecanique Controlee)住宅通风三原则: (1)通风路径(室外新风—卧室/客厅—走廊/过道—卫生间—排到室外) (2)通风风量(室内需要风量,两种算法) (3)通风时间(24小时不间断) 分析:(1)一般每个卧室配一个新风口,排风口与之对应或几个房间集中排风 (2)两种算法取其大 算法一Q1=人均新风量*室内人数(人均新风量≧30m3/h) 算法二Q2=每小时换气次数*室内有效容积(民用建筑换气次数从经济性考虑可按每小时~次计,而 商用区域一般按2~5次计) 举例: Dee Fly Compact最大适用面积(按次/小时,房高米) 195=**M M = 195/(*)= 125㎡(150~200) 以上通风面积厨房,卫生间,阳台不计在内 当单独设置新风系统,且换气量较大时,应充分考虑新风对采暖负荷和空调负荷的影响, 从节能的角度考虑,建议选用全热交换新风机组。 设计上有几个原则要注意: 1.室外进风口到风机的部分要尽量保证笔直,否则滤网会更快造成局部被堵住,然后形成较大阻 力。 2.室外的进风口和出风口要尽量的远。 3.室内的回风口到风机部分的管道要尽量短。 4.同一房间内的送风和回风口要尽量远离。 5.管道尽量笔直。 6.管道弯曲之前尽量保证至少1米的笔直部分。 7.卫生间和厨房绝对不要装回风/送风口,应该使用普通的排气扇/抽油烟机而不是连续的换气系 统。 8.尽量把风机放在厨房或者卫生间。 二.分类 1 .功能分 (1)单向流新风系统:安装在吊顶内的风机通过管道与一系列的排风口相连,风机启 动,室内混浊的空气经安装在室内的吸风口通过风机排出室外,在室内形成几个有 效的负压区,室内空气持续不断的向负压区流动并排出室外,室外新鲜空气由安装 在窗框上方(窗框与墙体之间)的进风口不断的向室内补充。

文泰雕刻软件路径的做法及雕刻文件的保存方法完整版

文泰雕刻软件路径的做法及雕刻文件的保存方 法完整版 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

文泰雕刻软件路径的做法及雕刻文件的保存方法完整版切割路径的做法点“”做路径:(如图1) (图1) (1)刀具选择(直刀) (2)轮廓线选择(自定/有深度/一般是外轮廓) (3)雕刻深度0(以台面对刀) (4)顺逆顺序选择(自定/水晶字一般是顺时针) (5)自动检查和自动分解打勾 点击确定后就会出现有颜色有方向的路径(如图2) (图2) 做完后保存雕刻路径即可(如图19) 二维路径的做法 点“”做路径(如图3) (图3) (1)刀具选择(平底刀,且两次都是同一把刀) (2)雕刻方式选择(自定/但不能是勾边) (3)二次加工方式选择(只能是勾边) (4)雕刻深度(自定/有深度/以材料对刀) (5)自动检查和自动分解打勾 点击确定后就会出现有颜色有方向的路径(如图4、图5) (图4)(图 5)

做完后保存雕刻路径即可(如图19)注意:透明材料要做镜像(如图5) 三维路径的做法 点“”做路径(如图6) (图6) (1)刀具选择(三维刀) (2)雕刻深度自定(自定/有深度/以材料对刀) (3)注意:三维路径必须是一条线(如图7、图8) (5)自动检查和自动分解打勾 点击确定后就会出现有颜色有方向的路径(如图7、图8) (图7)(图 8) 做完后保存雕刻路径即可(如图19)注意:透明材料要做镜像(如图8) 线条路径的做法 点“”做路径(如图9) (图9) (1)刀具选择(平底刀/三维刀) (2)轮廓选择(原线输出) (3)雕刻深度(自定/有深度,一般很浅/以材料对刀) (4)自动检查和自动分解打勾 点击确定后就会出现有颜色有方向的路径(如图10) (图10) 做完后保存雕刻路径即可(如图)注意:透明材料要做镜像

公司ERP系统常见问题及解决方法

公司ERP系统常见问题及解决方法 1调度进了系统,提示“远程目标机器未反应或sql不存在”? 处理方法:1.采用双反斜杠+IP的命令访问搅拌楼1#(192.168.1.7)、2#(192.168.1.8),看看网络是否畅通,电脑是否开机。如下图: 畅通的显示该机硬盘上的共享文件夹。

2.或采用在“开始运行cmd确认”后弹出的dos命令框中输入“ping 空格ip”的命令去访问搅拌楼1#机组、2#机组看看网络是否畅通,电脑是否开机。如下图: 如果访问目标电脑有time、ttl数据返回,整个网络是通的,电脑是正常工作的。 2、还需要确认服务器与搅拌楼1#、2#上位机的sql数据库是否运行正常,这就要用在“开始控制面板管理工具数据源管理器”如下图

接着单击“添加”按钮后下拉列表在左侧的列表框找到“SQL Server”后单击“完成”,如下图: 随后在弹出的“创建到 SQL Server 的新数据源”列表框中的第一个“你想用什么名称来命名数据源”的列表中填写一个名字,如1#。接着在第三个“你想连接哪一个SQL Server?”列表中填写你要访问的SQL Server 数据库所在电脑的IP,如1#上位机192.168.1.8,如下图:

接着单击“下一步”按钮,在弹出的SQL Server应该如何验证登陆ID的真伪的列表框中点选第二项“使用用户输入登录ID和密码的SQL Server 验证”,在登录ID列表框输入“sa”,在密码列表框输入“123”,如下图:图中的单击“下一步”,如下图: 单击上图中的“下一步”,如下图:

单击上图中的“下一步”,如下图: 单击上图中的“完成”按钮,接着在弹出的“ODBC Microsoft SQL Server 安装”列表框中单击“测试数据源”按钮,如下图:

金蝶软件常见问题及解决办法

金蝶软件常见问题及解决办法 说明:每项括号中标明问题针对的系统,如果未标明表示适用所有系统 1、固定资产折旧年限超期问题 现在很多客户都有一些固定资产,使用时间已经过了折旧年限,但由于以前的种种原因,折旧没有提完且该固定资产还在使用,此时如果录入固定资产时按实际情况录入,尤其是在系统提示:该固定资产使用时间已过折旧年限,是否继续,此时如果选择是的话,帐套起用后,所提折旧均为错误,因为必须人为地把固定资产从入账到帐套起用时所提折旧期间数改小,才能避免这个问题。 2、购销存生成凭证注意事项(金蝶2000系 统)

工业版中通过购销存模块生成凭证时,如果 凭证一方下挂核算项目,当凭证信息输入完 整后,直接按保存按钮,那么在保存该凭证 对应的购销存单据时,系统会提示凭证核算 项目不能为空,且无法保存该单据。解决的 方法是凭证信息输入完整后,不要直接按保 存按钮,而是在凭证的空白处点击一下鼠标 左键后,再点击保存按钮。 3、重做操作系统时如何恢复帐套?(金蝶2000 方法1:在金蝶软件安装目录里(一般情况是c:\program files\kdwin70),找到贵公司的帐套文system.mda文件,拷贝即可。重装系统和软件后将帐套文件和system.mda文件复制到安装目录 可。

方法2:通过备份帐套,然后再恢复帐套即可 使用此方法) 4、损益表重算后无数字 出现此问题可能的原因是用户自已手工录 入了损益凭证。 关于损益类凭证必须通过软件中的“结转 损益”功能自动生成,不可手工结转。 5、某一用户查询不到其它用户的凭证(金 蝶2000系统) 出现此问题可能的原因是授权范围限制。 通过工具→用户授权→按选定指定的用户→ 授权→操作权限→权限适用范围→所有用户 即可。

新风系统常见知识问答

新风系统常见知识问答 新风系统常见知识问答 1、全热交换机芯时间长了用清洗吗? 答:用。可用吸尘器、吹风机、水清洗。 2、静音型新风机的噪音最低值是多少? 答:根据风量的大小改变,从15分贝到50分贝不等。 3、安装新风的管道怎么进行变管? 答:用PVC大小头连接。变径后管径的大小根据风量和风速确定。 4、新风的安装方式都有什么? 答:上送上回、下送上回。 5、新风控制器优点? 答:可自动检测室内二氧化碳浓度、挥发性有机化合物含量,通过检测室内空气污染指数自动控制风机的启停和风速大小,在节能的同时给家庭创造一个良好的环境,同时也能有效检测室内温度、湿度。也可做分段控制风速启停。 6、新风控制器BMKF系列适合于所有新风主机吗? 答:不能,BMKF系列属于有源输出的控制器,通过零火线控制风机高中低速运转,适合于风机高中低速线接火线的类型,不适用于高中低速线接控制线的类型。 7、全热交换跟双向流的有什么区别? 答:全热交换型风机可以回收室内的冷凉或热量,减少室内热负荷或冷负荷的损失。而双向流不能。 8、新风型号英文字母“W”“D”“DP”“DPJ”代表什么?

答:W代表普通全热交换器,D代表直流电机全热交换器,DP代表带 PM2.5三重处理全热交换器,DPJ代表带静电除尘四重过滤全热交换器。 9、自平衡新风机适合装什么样的房子? 答:无需安装分支器,适合在有多个房间的住宅,风机的多个风口可 根据实际应用可调可堵,实现每个房间风量平衡。 10、一个房间需要装多少风口如何计算? 答:这是根据房间大小和风口大小确定的,房间面积*层高*换气次数= 新风量风口数量=新风量/风口横截面积/风管风速。出风口风速2.5米 /秒时:75风口风量约35立方每小时,100风口风量约70立方每小时。 11、新风风口可调节跟百叶如何选配? 答:可调风口可是适当调节风口开度大小,百叶主要是调节风向,一 般房间大小不一时建议只用可调风口,其次是视觉问题,看客户的要求。 12、新风主机连接软管要接多长,接长了风量有影响吗? 答:一般建议俩个管道之间20-50cm,特别的情况(什么是特殊情况)?可适当加长,但尽量减少软管打折,因为一是软管内壁不光滑,二是 软管较长时容易褶皱,这样会使管道内风风阻加大,影响整体风量。 超出1M会影响总风量的10%以上。 13、房子装修过还可以装新风吗? 答:可以,装修过的房子可以建议客户装壁挂式新风机,要想装中央 新风系统,需适当改动装修。 14、新风过滤器如何清洗? 答:先用吸尘器清理后,再适当用水清洗,一般建议定期更换。以确 保较好的通风和良好的室内环境。

操作系统常见问答题总结

操作系统常见问答题总结 1、简述操作系统的定义。 操作系统是计算机系统的一种系统软件,它统一管理计算机系统的资源和控制程序的执行。 2、在多道程序设计技术的系统中,操作系统怎样才会占领中央处理器? 只有当中断装置发现有事件发生时,它才会中断当前占用中央处理器的程序执行,让操作系统的处理服务程序占用中央处理器并执行之。 3、简述“删除文件”操作的系统处理过程。 用户用本操作向系统提出删除一个文件的要求,系统执行时把指定文件的名字从目录和索引表中除去,并收回它所占用的存储区域,但删除一个文件前应先关闭该文件。 4、对相关临界区的管理有哪些要求? 为了使并发进程能正确地执行,对若干进程共享某一变量(资源)的相关临界区应满足以下三个要求: ①一次最我让一个进程在临界区中执行,当有进程在临界区中时,其他想进入临界区执行的进程必须等待; ②任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限逗留在自己的临界区中; ③不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让下一个等待进入临界区的进程进入它的临界区。 5、简述解决死锁问题的三种方法。 ①死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。 ②死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。 ③死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就呆把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。 6、从操作系统提供的服务出发,操作系统可分哪几类? 批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 7、简述计算机系统的中断机制及其作用。 中断机制包括硬件的中断装置和操作系统的中断处理服务程序。 中断装置由一些特定的寄存器和控制线路组成,中央处理器和外围设备等识别到的事件保存在特定的寄存器中,中央处理器每执行完一条指令,均由中断装置判别是否有事件发生。 若无事件发生,CPU继续执行;若有事件发生,则中断装置中断原占有CPU的程序的执行,让操作系统的处理事件服务程序占用CPU,对出现的事件进行处理,事件处理完后,再让原来的程序继续占用CPU执行。 8、选择进程调度算法的准则是什么? 由于各种调度算法都有自己的特性,因此,很难评价哪种算法是最好的。一般说来,选择算法时可以考虑如下一些原则: ①处理器利用率; ②吞吐量; ③等待时间; ④响应时间。 在选择调度算法前,应考虑好采用的准则,当确定准则后,通过对各种算法的评估,从中选择出最合适的算法。 9、独占设备采用哪种分配方式?

通风系统的常见问题汇总

通风系统的常见问题汇总 通风系统的分类 一般的分新风系统、回风系统、排烟系统。 按通风动力分类:自然通风、机械通风; 按照通风服务范围:全面通风、局部通风; 按气流方向分类:送(进)、排风(烟); 按通风目的分类:一般换气通风、热风供暖、排毒与除尘、事故通风、防护式通风、建筑防排烟等; 按动力所处的位置分类:动力集中式和动力分布式。 通风系统工程调试 1、系统调试的一般原则及实例简介通风空调系统的调试是一项综合性工作,需其他相关专业如水、电、设备以及消防和远程控制等的紧密配合和协调,方可顺利进行。并且在空调机组、风机等设备单机调试完成后进行。天津地铁一号线为公共建筑,在原地铁线路基础上进

行扩建、增建延长行程。南楼站为地下岛式双层车站,是新建车站,负二层为站台层,站厅在地下一层。站台宽11m有效长度120m,分公共区和设备管理区;站厅也分公共区、设备管理区。站厅、站台公共区各设两个防烟分区。车站两端分别设送、排风道和送、排风亭,由4台可逆转风机送排风。2、系统调试一般内容与检测项目(1)严密性能检测。根据要求不同可采用漏光、漏风试验(具体要求这里不再详述)。要求必须进行漏风检测的应采用合格的计量设备分系统分段进行检测。漏风检测要在漏光检测合格的基础上进行。(2)为了实现漏光法检测目的,风管必须内、外一侧有一定强度的安全光源,另一侧为黑暗无光的环境,以便在黑暗侧目测由光源侧透过风管的孔、洞、缝隙的漏光点。所以我们选择在天黑后管道内缓慢移动100~200W安全行灯并关掉施工照明的情况下进行,以提高试验的可靠性。漏光法应特别注意在弯头、三通、四通、异径及开孔分支管等处要加强检测。低压风管每10m 接缝,漏光点不得超过2处,且100m接缝平均不大于16处为合格。中压风管每10m接缝,漏光点不得超过1处,且100m接缝平均不大于8处为合格。检测的抽检率为低压5%,中压20%,且低、中压系统检测均不得少于1个系统。系统风管的测试宜采用分段检测,汇总分析的方法。检测中如发现条缝形漏光,视本系统为不合格,应做密封处理。如咬缝漏光严重,则重新制作安装该段风管,并重新做漏光测试。(3)对风管系统的漏风量测试,是将被测风管系统在密闭的状态下,利用专用的漏风测试装置源源不断地向系统注入逐渐增大的风量,使该系统内压力渐渐上升,达到值时,保持其稳定不变,这时系统内的漏风量和漏风测试装置补入风量刚好在该压力下保持相等。读取漏风测试装置供给系统的风量,即测出该系统在给定试验压力下的漏风量,平均到被测风管面积后,便得出该系统风管的单位面积漏风量,和所允许漏风量作比较,可得检测结果是否合格。(4)系统风量平衡调整,风量的测定可采用管内测量方法,也可采用管口测量方法。系统总送风量、回风量和新风量可通过调节各总风管上的调节阀来调整风量,直至达到设计要求,且与设计风量的偏差不应大于10%。风口风量的调整与平衡一般应采取基准风口法和流量等比分配法。一般流量较多采用等比分配法,是以最不利环路(风口)开始,使下游环路实测风量与上游环路实测风量与设计风量分配比例相一致。然后,逐个上移环路进行调整,使各个环路间的实测风量与设计风量分配比例相一致。以此类推,最后调整风机处的风阀,使系统风量符合设计要求。(5)风管风量的测量,测定位置应尽可能在一段不小于风管直径6倍的直管段上,测定截面尽可能靠近末端1.5倍风管径处,且有操作空间。矩形截面测点应将截面分成以200~250mm为边长的小方形截面,测点位于小截面中心;圆形截面测点将圆形截面分成等面积的3~5个同心圆环,测量

怎么修改文件保存路径

不知你是否注意到,我们日常使用的许多应用软件默认的数据文件都是保存在自己的安装文件夹中,或者保存在同一个磁盘分区的不同文件夹中(一般是专用的数据文件保存文件夹)。殊不知,这样存放我们个人的数据文件是很危险的。一旦系统崩溃或存放系统文件的分区被破坏,我们辛辛苦苦所存放的宝贵的数据文件也随之丢失了。而且,我们对硬盘进行分区及管理文件的根本目的也就是把系统文件和数据文件进行“剥离”,将两者分开存放,以便尽可能地保护我们宝贵的数据文件的安全。那么,怎样才能把我们的数据文件安全顺利地保存在我们设定的专用数据分区中呢?下面是常见应用软件的数据保存路径的修改方法: 一、Word文档的剥离保存方法 Word在默认情况下会将数据文件保存到“My Documents”文件夹中,我们若拟将其保存到我们设定的专用数据分区中,只需在“保存”对话框中选择专用的数据分区即可。 另外,我们也可对Word的默认文件保存路径进行调整,将其修改成专用数据分区中的某个文件夹,简化用户保存文件时的操作步骤。只要执行Word“工具”菜单的“选项”命令,然后在弹出的“选项”对话框中单击“文件位置”选项卡,最后选择“更改”按钮将“文档”位置指定为专用数据分区中的某个文件夹即可。 二、Excel文档的剥离保存方法 Excel的默认保存文件夹也是“My Documents”文件夹,广大用户同样可通过“保存”对话框将其保存到专用的数据分区中。 另外,我们也可对Excel的默认保存路径进行修改:执行“工具”菜单的“选项”命令,然后在弹出的“选项”对话框的“常规”选项卡中将Excel的默认数据文件保存文件夹即“默认工作目录”修改为专用的数据分区中的文件夹即可。 三、WPS 2000文档的剥离保存方法 WPS 2000没有提供修改系统默认存盘路径的功能,我们每次只要通过修改“保存”对话框中的文件存盘路径即可将WPS 2000的数据文件保存到专用数据分区中。 四、Outlook Express文档的剥离保存方法 Outlook Express默认的邮件保存文件夹是Windows 98安装文件夹下的 \ApplicationData\Microsoft\OutlookExpress子文件夹。用户若拟将其调整到专用的数据分区中,则应执行Outlook Express“工具”菜单的“选项”命令,打开“选项”对话框,然后单击“维护”选项卡中的“存储文件夹”按钮,打开“存储位置”对话框,接下来单击“更改”按钮,并从弹出的“浏览文件夹”对话框中选择专用数据分区中的拟用于保存数据的文件夹即可。

考试系统常见问题及解决方法

三恩信息技术网络考试系统(C/S)常见问题及解决方法 序号问题现象可能的原因解决方法 1 登录考试时出现如图提示:设置了考次,考次时间未 到或已过。 检查: (1)是否设置了考次; (2)考次时间是否与考试服务器 的系统时间不一致。 2 登陆考试时,出现当前没有考试提示没有生成考次生成考次即可。 3 在上传成绩的时候出现,出现文件路径找不到的情 况。 可能是原来安排了模拟 考试或自己安排的考试, 但是在正式考试的时候 没有把数据清空干净。 找到相应的目录下面把对应的文 件夹删除掉,如果无法删除就在安 全模式下删除,同时把废弃的考试 删除掉,再上传成绩。 4 在考试的过程当中服务器突然断电,重新启动后有部 分学生无法设置续考和重考。 可能是在断电的瞬间,该 部分学生正在存储数据, 导致系统默认为该部分 学生的考试文件夹一直 在使用,不能删除。 在安全模式下,找到相应的目录, 把该考生的文件夹删除掉,再设置 续考或重考。 5 学生考试完成后不能交卷,提示试卷提交失败。1、考试服务器被关闭了。 2、考试服务器与考试使 用1103号端口进行通讯, 如果该端口被其他程序 占用,会导致通讯无法正 常进行。同时,如果服务 器上安装了防火墙,也要 注意这个问题,看端口号 是否开放。 1、开启考试服务器; 2、如果是1103端口被占用或禁 用了,请开放该端口。 6 在win95或win98(第一版)的操作系统上,可能会 出现试题无法下载的问题。表现症状为正常登陆服务 器,但是考试信息以及试卷均无法显示,无法开始考 试。 是由于win95和win98第 一版不支持xml。 这种现象多发生在win98第一版。 主要原因是操作系统不支持xml对 象,可运行考试终端安装目录下的 “win98补丁”的 “msxml3chs.msi”,“msxml.msi” 如提示无法运行,先运行一下 “InstMsiA.exe”即可。 7 考试终端无法连接服务器1、服务被无意中关闭了;1、查看装有考点系统的机器上考

新风系统常见问题汇总

新风系统常见问题汇总 1、什么是新风? 答:新风系统就是通过新风机组、新风管道和风口,将室外新鲜空气经过处理后送入室内,通过风口、排风管道和风机将室内污浊空气排出室内;同时保证室内压力的稳定。 2、新风有什么用? 答:新风起到不开窗净化空气的作用,能减少室内空气中有害物质和有害气体,保证室内空气的含氧量,有利于健康。 3、新风都有什么类型? 答:家装常用新风机组有单向流、自平衡、双向流、全热交换四种。 4、功耗多少? 答:新风机组的耗电部件是风机的电机,相当于风扇的耗电量,家装新风机组的耗电量一般在100W以下。机组风量越大耗电量越大。 5、噪音如何? 答:家用新风机噪音一般在30-40分贝。高、中、低三档中,高速噪声最大,低速最小。 6、新风用多大的机器,如何计算? 答:可按两种方法计算: (1)、换气次数:家装换气次数一般选择0.75-1次。 (2)、人均新风量:每人每小时30-50立方的新风量。例如:一15平方主卧室,层高2.5米,按照方法1计算得到小时新风量为15*2.5*1=37.5立方,按照方法2计算时,主卧室内人数按照2人计算,则需要的小时新风量为2*30=60立方两种计算结果,选择较大的一个作为选型依据,即该房间每小时需要60立方的新风量。其余房间也按照该方法计算,各房间总风量之和小于等于选择的新风机组的最大风量。 7、什么场合如何区分? 答:根据不同场所的换气次数和人均小时新风量,家装0.75—1次,商场1.6—3.9次,计算机房1.1—2.7次,体育馆2.5—6.3次,小型会议室3-5次,大型会议室8次左右,饭店、KTV6—8次,计算出总新风量,然后选择风机型号。 8、风管和风口有关系吗? 答:有关系,新风经新风管道、风口送入室内,风口和风管如果连接的不紧密会导致漏风,所以在选择风口是口径要与跟它连接的风管一致。 9、全热交换是什么意思? 答:全热包含显热和潜热。显热:高温空气和低温空气因温差传递的热量,潜热:高温空气中水蒸气凝结时散发的热量。 10、全热交换有什么用途? 答:节能,降低或提高进入室内空气的温度,降低空调负荷。 11、什么是自平衡风机?

Win7系统常见问题解决方案大全

Win7系统常见问题解决方案大全 以下就是win7系统下常见故障的解决方法: 一、Win7蓝屏故障解决方案 出现此类故障的表现方式多样,有时在Windows启动时出现,有时在Windows下运行一些软件时出现,出现此类故障一般是由于用户操作不当促使Windows系统损坏造成,此类现象具体表现在以安全模式引导时不能正常进入系统,出现蓝屏故障。有时碎片太多也会引发此类故障,有一次笔者在整理碎片后就解决了该故障,如若排除此项可能则有以下几种原因可能引发该故障。 1、内存原因。由于内存原因引发该故障的现象比较常见,出现此类故障一般是由于芯片质量不佳所造成,但有时我们通过修改CMOS设置中的延迟时间CAS(将其由3改为2)可以解决该问题,倘若不行则只有更换内存条。 2、主板原因。由于主板原因引发该故障的概率较内存稍低,一般由于主板原因出现此类故障后,计算机在蓝屏后一般不会死机,而且故障出现频繁,对此唯有更换主板一途。 3、CPU原因,由于CPU原因出现此类故障的现象比较少见,一般常见于cyrix的CPU上,对此我们可以降低CPU频率,看能否解决,如若不行,则只有更换一途。 推荐阅读:蓝屏代码查询器 二、win7保护错误解决方案 出现此类故障的原因一般有以下几点: 1、内存条原因。倘若是内存原因,我们可以改变一下CAS延迟时间看能否解决问题,倘若内存条是工作在非66MHz 外频下,例如75MHz 、83MHz 、100MHz甚至以上的频率,我们可以通过降低外频或者内存频率来试一下,如若不行,只有将其更换了。 2、磁盘出现坏道。倘若是由于磁盘出现坏道引起,我们可以用安全模式引导系统,再用磁盘扫描程序修复一下硬盘错误,看能否解决问题。硬盘出现坏道后,如不及时予以修复,可能会导致坏道逐渐增多或硬盘彻底损坏,因此,我们应尽早予以修复。 3、Windows系统损坏。对此唯有重装系统方可解决。 4、在CMOS设置内开启了防病毒功能。此类故障一般在系统安装时出现,在系统安装好后开启此功能一般不会出现问题。三、win7随机性死机解决方案 死机故障比较常见,但因其涉及面广,是以维修比较麻烦,现在我将逐步予以详解。 1、病毒原因造成电脑频繁死机 由于此类原因造成该故障的现象比较常见,当计算机感染病毒后,主要表现在以下几个方面: ①系统启动时间延长; ②系统启动时自动启动一些不必要的程序;

十六种监控系统常见故障的解决方法汇总

监控故障排除方法 在一个监控系统完工以后需要进入调试阶段、试运行阶段以后才能交付使用,有可能出现各种故障现象,例如常见的:不能正常运行、系统达不到设计要求的技术指标、整体性能和质量不理想,特别是对于一个复杂的、大型的监控工程项目来说,是在所难免的,这是就需要我们去做相应的处理来解决故障,保证系统的正常运行。 1.电源不正确引发的设备故障。电源不正确大致有如下几种可能:供电线路或供电电压不正确、功率不够(或某一路供电线路的线径不够,降压过大等)、供电系统的传输线路出现短路、断路、瞬间过压等。特别是因供电错误或瞬间过压导致设备损坏的情况时有发生。因此,在系统调试中,供电之前,一定要认真严格地进行核对与检查,绝不应掉以轻心。 2.由于某些设备的连结有很多条,若处理不好,特别是与设备相接的线路处理不好,就会出现断路、短路、线间绝缘不良、误接线等导致设备的损坏、性能下降的问题。在这种情况下,应根据故障现象冷静地进行分析,判断在若干条线路上是由于哪些线路的连接有问题才产生那种故障现象。因此,要特别注意这种情况的设备与各种线路的连接应符合长时间运转的要求。 3.设备或部件本身的质量问题。各种设备和部件都有可能发生质量问题,纯属产品本身的质量问题,多发生在解码器、电动云台、传输部件等设备上。值得指出的是,某些设备从整体上讲质量上可能没有出现不能使用的问题,但从某些技术指标上却达不到产品说明书上给出的指标。因此必须对所选的产品进行必要的抽样检测。如确属产品质量问题,最好的办法是更换该产品,而不应自行拆卸修理。 4.设备(或部件)与设备(或部件)之间的连接不正确产生的问题大致会发生在以下几个方面: ⑴阻抗不匹配。 ⑵通信接口或通信方式不对应。这种情况多半发生在控制主机与解码器或控制键盘等有通信控制关系的设备之间,也就是说,选用的控制主机与解码器或控制键盘等不是一个厂家的产品所造成的。所以,对于主机、解码器、控制键盘等应选用同一厂家的产品。 ⑶驱动能力不够或超出规定的设备连接数量。比如,某些画面分割器带有报警输入接口在其产品说明书上给出了与报警探头、长延时录像机等连接的系统主机连成系统,如果再将报警探头并联接至画面分割器的报警输入端,就会出现探头的报警信号既要驱动报警主机,又要驱动画面分割器的情况。 解决类似上述问题的方法之一是通过专用的报警接口箱将报警探头的信号与画面分割器或视频切换主机相对应连接,二是在没有报警接口箱的情况时,可自行设计加工信号扩展设备或驱动设备。 5.视频传输中,最常见的故障现象表现在监视器的画面上出现一条黑杠或白杠,并且或向上或向下慢慢 滚动。因此,在分析这类故障现象时,要分清产生故障的两种不同原因。 要分清是电源的问题还是地环路的问题,一种简易的方法是,在控制主机上,就近只接入一台电源没有问题的摄像机输出信号,如果在监视器上没有出现上述的干扰现象,则说明控制主机无问题。接下来可用一台便携式监视器就近接在前端摄像机的视频输出端,并逐个检查每台摄像机。如有,则进行处理。如无,则干扰是由地环路等其它原因造成的。 6.监视器上出现木纹状的干扰。这种干扰的出现,轻微时不会淹没正常图像,而严重时图像就无法观看了(甚至破坏同步)。这种故障现象产生的原因较多也较复杂。大致有如下几种原因:

机房新风系统的设计汇总

机房新风系统的设计 1、新风系统定义: 英文名称又叫VMC(CONTROLLED MECHANICAL VENTILATION )的缩写中文翻译为可控式的管道通风系统或者新风系统VMC可控式机械通风设计要求,由风级、管道、送风口和排风口等一个完整的VMC系统,这个系统必须能够让建筑会呼吸,改善室内空气品质,这套系统其功能性和经济性匹配实现最优的方案。适家宜居 2、新风系统的分类: 单项流新风系统双向流新风系统双向流热交换新风系统 3、新风系统的作用: 目前室内空气比过去来讲逐步恶化,这方面的论述已经越来越 多。比较典型的是住宅不良空气在逐步的影响我们的健康,具体归类:病态建筑综合症、SBS、还有建筑有关的疾病BRI,包括老百姓接触的化学药剂装修污染。SBS准确就是住宅越来越严密所延伸的问题,国内也称空调病。BRI更多讲由于建筑应用材料设备不当导致一些延伸问题。世界卫生组织对这个问题已经关注很久,也已经有很多这方面的理论,目前比较好的对室内改善的措施是通风换气。

4、单向流新风系统: 通过一台风机与窗式进风器实现风机启动将室内污浊空气排到 室外室内形成负压在外界大气压的作用下室外空气通过窗式进风器进入室内达到空气置换的目的适家宜居 5、双向流新风系统: 通过两台主机实现两台风机一台将室内的污浊空气强制排出室外另一台则将新鲜空气抽送到室内双向流系统的特点是强制进 排空气并且在送风主机前端加装空气过滤系统(选配)达到空气送入室内的清洁适家宜居 6、双向流热回收新风系统: 一台热回收主机实现在北方由于冬天室内外温差较大送入室 内的空气温度较低通过热回收主机将室内送向室外的空气与新进的空气进行热量交换以达到节能的目的 7、新风系统的设计原则: VMC在机房设计原则新鲜空气由配电柜、工作间、服务器机房 等洁净区域进入室内,污浊空气由室外等污染区域排除。定义通风风量,确定房间的最小通风量在0.6—1.2次小时,满足日常生活所需要的新鲜空气。国家标准为每人每小时30立方米的新风量。

路径文件目录IO常见操作汇总转

C 路径文件目录IO常见操作汇总转 文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。 主要内容: 一、路径的相关操作,如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容; 二、相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录; 三、文件、目录、驱动器的操作,如获取它们的基本信息,获取和设置文件和目录的属性,文件的版本信息, 搜索文件和目录,文件判等,复制、移动、删除、重命名文件和目录; 四、读写文件,包括临时文件,随机文件名等; 五、对文件系统的监视; 这一篇就先写一下前两部分。 一、路径相关操作 问题1:如何判定一个给定的路径是否有效/合法; 解决方案:通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可以 根据它来判断路径中是否包含非法字符; 问题2:如何确定一个路径字符串是表示目录还是文件; 解决方案: 1、使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件;

2、上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得 其包含的文件名,如果一个路径不为空,而文件名为空那么它表示目录,否则表示文件; 问题3:如何获得路径的某个特定部分(如文件名、扩展名等); 解决方案: 下面是几个相关方法: Path.GetDirectoryName:返回指定路径字符串的目录信息; Path.GetExtension:返回指定的路径字符串的扩展名; Path.GetFileName:返回指定路径字符串的文件名和扩展名; Path.GetFileNameWithoutExtension:返回不具有扩展名的路径字符串的文件名; Path.GetPathRoot:获取指定路径的根目录信息; (更多内容还请参考MSDN) 问题4:如何准确地合并两个路径而不用去担心那个烦人的"\"字符; 解决方案: 使用https://www.sodocs.net/doc/657456953.html,bine方法,它会帮你处理烦人的"\"; 问题5:如何获得系统目录的的路径(如桌面,我的文档,临时文件夹等); 解决方案: 主要是使用System.Environment类的相关属性和方法: Environment.SystemDirectory属性:获取系统目录的完全限定路径; Environment.GetFolderPath方法:该方法接受的参数类型为 Environment.SpecialFolder枚举, 通过这个方法可以获得大量系统文件夹的路径,如我的电脑,我的电脑,桌面,系统目录等;

[监控系统常见问题与解决方法汇总]常见问题及解决办法

[监控系统常见问题与解决方法汇总]常见问题 及解决办法 A、摄像机 1、无图像输出 1) 2) 3) 4) 5) 检查电源是否接好,电源电压是否足够。B NC 接头或视频电缆是否接触不良。 镜头光圈有否打开。 视频或直流驱动的自动光圈镜头控制线是否接对。 检查监控显示设备与摄像机本身是否存在故障。 2、图像质量不好 1)镜头是否有指纹或太脏。 2)光圈有否调好。 3)视频电缆接触是否不良。 4)电子快门或白平衡设置有无问题。 5)传输距离是否太远。

6)电源电压是否正常。 7)附近是否存在干扰源。 8)在电梯里安装时要与电梯保证绝缘免受干扰。9) CS 型接口有否接对。 B、解码器 1、接通电源,电源指示灯不亮 1) 检查电源有否加到接线柱。 2) 检查电源保险丝是否损坏。 2、通电即烧保险 1) 检查接线端子的公共端有没有接错。 2) 检查云台输出电压选择有否选对。 3) 检查解码板电路短路情况。 3、电源指示灯亮但无法操作控制 1)信号控制线是否接对。 2)控制时信号灯闪烁否。 3)有否正确编码。 4)当前选择画面是否为该云台对应通道。

4、控制不灵乱转 1)检查控制码信号线。 2)同一条信号线控制线过长。 3)同一条信号线串接过多的解码器。 C、报警设备 一个大型的、与防盗报警联动运行的电视监控系统,是一个技术含量高、构成复杂的系 统。各种故障现象虽然都有可能出现,但只要把好所选用的设备和器材的质量关,严格按标准和规范施工,一般是不会出现大问题的。即使出现了,只要冷静分析和思考,不盲目地大拆大卸,是会较快解决问题的。 1、报警信号无法撤防 1)线尾电阻没连接好或接法不对 2)输入线有没有处于短路状态。 3)探头工作是否正常。 2、无报警量输出 1)有否布防。 2)布防编程是否正确。 3)能否听到探头或报警主机里的计电器动作声响。 D、分割器 1、 2、

系统常见问题解决办法

医谷一体化常见问题及解决办法 门诊药房系统 1.如何给药品增加别名: 进入“数据维护”“药品名称维护”查询出需要添加别名的药品在需要修改的药品名称前勾选点击“增加别名”填写药品别名,敲击回车键自动生成拼音码在“常用”后边点击勾选。 添加了别名但是用别名却找不出相应药品,原因通常是在添加别名时忘记在原药品名前点勾选,或者没有勾选后边的“常用”。 2.添加了新的药品名称,在药品信息维护里找不到: 新添加的药品名称是没有药品信息的,这时就需要在“药品信息维护”中点击“增加”按钮在弹出的页面里输入刚添加的药品的拼音码敲击空格键选中药品并填写药品的规格信息。 3.针筒滴灌等信息作为西药维护时的注意事项: ①需要在“药品信息维护”中添加上不同规格的记录,如5ml、10ml……②药品信息里的“类别”和“大类”要选择好③在药品信息最下边一行,填上给药方式为“材料”,执行频率为“ONCE”④门诊、住院账单及“核算码”要选择为“西药费”,不能填为“材料费”,否则医生在西药里用拼音码检索不出该记录。 4.药品名称和药品信息填写完毕后,入库时找不到此药品: ①检查是否拼音码输入错误②检查帐页是否生成,如果没有需要在药品帐页维护里选择生成方式“生成全部药品帐页”点击“生成”按钮。 5.如何查询药品入库时的数量: 在“综合查询”“用户报表”“进消库查询”“药品入出库明细”中选择入库时间填

写上要查询的的药品名称点击“查询”按钮。 6.如何查询药品库存,当药品数量不多时如何提醒: ①在“综合查询”“用户报表”“进消库查询”“库存查询”中输入“%”查询所有药品库存量。②在“数据维护”“药品帐页维护”维护中设置药品库存下限,在“综合查询”“药品效期提醒”中点击“库存量提醒”点击“查询”按钮可查询到达下限的药品。 “药品效期提醒”中还可以查询3个月内过期的药品以及“零库存”的药品。 7.门诊和住院的输液卡分别怎么打印: ①门诊处方的输液卡在“门诊处方确认”里面直接点击“预览”可预览该处方的输液卡,点击“输液卡”直接打印。 ②住院处方的输液卡在“综合查询”“输液卡打印”中输入病人住院号在“类型”中选择“输液卡”或“注射卡”点击“预览”然后点击“打印”。 8.审核盘点的时候报错: 在填写盘点单的时候,不能盘点账面数量为“0”的药品,否则审核时会报错,这时需要上库存的话就要用“添加入库单”来处理。(原因为系统对没有入过库的药品是检索不出来的,只有入过一次库之后才能。) 门诊收费系统 1.不小心点了发票打印,发票号对不上如何处理: 在“发票管理”“发票初始化”中把“当前号”修改为发票本上第一张发票的号码点击“保存”。 2.如何打印以前某一天已经结算过的“实收日报”:

相关主题