createfile c语言createfile函数用法
无论是createfile还是c语言createfile函数用法,它们都是当前热门话题。如果你对它们感到好奇,那么请跟随小编的脚步,一起来揭开它们的秘密吧!
电脑为什么安装软件的时候总是提示(CreateFile失败
应该是文件写入权限设置错误引起的,用系统管理员账号登入系统后安装试试,或在系统管理员权限下找到你项目的文件夹,右键选择"属性",然后点击"完全"选项卡,点击"添加","高级","立即查找",找到平时登入所用帐户,然后"确定",最后再为登入所用帐户户勾选"写入权限",
c# 编程CreateFile函数
你找的是c++里的创建文件的函数,在c#里应该是用下面的
--------------------------------------------------------------------------------------
File类
提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream对象。
继承层次结构
System.Object
System.IO.File
命名空间: System.IO
程序集: mscorlib(在 mscorlib.dll中)
语法
C#
public static class File
File类型公开以下成员。
公共方法静态成员 Create(String)在指定路径中创建或覆盖文件。
公共方法静态成员 Create(String, Int32)创建或覆盖指定的文件。
公共方法静态成员 Create(String, Int32, FileOptions)创建或覆盖指定的文件,并指定缓冲区大小和一个描述如何创建或覆盖该文件的 FileOptions值。
公共方法静态成员 Create(String, Int32, FileOptions, FileSecurity)创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。
下面的示例在指定路径中创建一个文件,将一些信息写入该文件,再从文件中读取。
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path=@"c:\temp\MyTest.txt";
try
{
// Delete the file if it exists.
if(File.Exists(path))
{
// Note that no lock is put on the
// file and the possibility exists
// that another process could do
// something with it between
// the calls to Exists and Delete.
File.Delete(path);
}
// Create the file.
using(FileStream fs= File.Create(path))
{
Byte[] info= new UTF8Encoding(true).GetBytes("This is some text in the file.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
// Open the stream and read it back.
using(StreamReader sr= File.OpenText(path))
{
string s="";
while((s= sr.ReadLine())!= null)
{
Console.WriteLine(s);
}
}
}
catch(Exception Ex)
{
Console.WriteLine(Ex.ToString());
}
}
}
c语言createfile函数用法
CreateFile用法和例子
函数原型:
HANDLECreateFile(
LPCTSTRlpFileName,//指向文件名的指针
DWORDdwDesiredAccess,//访问模式(写/读)
DWORDdwShareMode,//共享模式
LPSECURITY_ATTRIBUTESlpSecurityAttributes,//指向安全属性的指针
DWORDdwCreationDisposition,//如何创建
DWORDdwFlagsAndAttributes,//文件属性
HANDLEhTemplateFile//用于复制文件句柄
);
参数列表
lpFileName String要打开的文件的名字
dwDesiredAccess Long如果为 GENERIC_READ表示允许对设备进行读访问;如果为 GENERIC_WRITE表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息
dwShareMode Long,零表示不共享; FILE_SHARE_READ和/或 FILE_SHARE_WRITE表示允许对文件进行共享访问
lpSecurityAttributes SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话)
dwCreationDisposition Long,下述常数之一:
CREATE_NEW创建文件;如文件存在则会出错
CREATE_ALWAYS创建文件,会改写前一个文件
OPEN_EXISTING文件必须已经存在。由设备提出要求
OPEN_ALWAYS如文件不存在则创建它
TRUNCATE_EXISTING讲现有文件缩短为零长度
dwFlagsAndAttributes Long,一个或多个下述常数
FILE_ATTRIBUTE_ARCHIVE标记归档属性
FILE_ATTRIBUTE_COMPRESSED将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式
FILE_ATTRIBUTE_NORMAL默认属性
FILE_ATTRIBUTE_HIDDEN隐藏文件或目录
FILE_ATTRIBUTE_READONLY文件为只读
FILE_ATTRIBUTE_SYSTEM文件为系统文件
FILE_FLAG_WRITE_THROUGH操作系统不得推迟对文件的写操作
FILE_FLAG_OVERLAPPED允许对文件进行重叠操作
FILE_FLAG_NO_BUFFERING禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块
FILE_FLAG_RANDOM_ACCESS针对随机访问对文件缓冲进行优化
FILE_FLAG_SEQUENTIAL_SCAN针对连续访问对文件缓冲进行优化
FILE_FLAG_DELETE_ON_CLOSE关闭了上一次打开的句柄后,将文件删除。特别适合临时文件
也可在Windows NT下组合使用下述常数标记:
SECURITY_ANONYMOUS,SECURITY_IDENTIFICATION,SECURITY_IMPERSONATION,SECURITY_DELEGATION,SECURITY_CONTEXT_TRACKING,SECURITY_EFFECTIVE_ONLY
hTemplateFile Long,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性
返回值
如执行成功,则返回文件句柄。
INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS
(以上摘自百度百科)
实例:
1、直接在函数内指定文件地址:
voidplayCEwav()
{
CHAR*pBuffer;
DWORDRSize;
intfileSize=0;
inti;
HANDLEhOpenFile=(HANDLE)CreateFile(L"E:\\a.text",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
if(hOpenFile==INVALID_HANDLE_VALUE)
{
hOpenFile=NULL;
MessageBoxA(NULL,"Cannotopenthefile","Playwav",MB_OK);
}
fileSize=GetFileSize(hOpenFile,NULL);
pBuffer=(CHAR*)malloc(fileSize);
ReadFile(hOpenFile,pBuffer,fileSize,&RSize,NULL);
//可将pBuffer显示在某区域或写入另一个文件来检查读出是否正确
free(pBuffer);
}
2、把文件地址通过参数传入:
voidplaywav(TCHAR*path)
{
CHAR*pBuffer;
DWORDRSize;
intfileSize=0;
inti;
TCHARszPath[100];
memset(szPath,0,sizeof(szPath));
_tcscpy(szPath,path);
HANDLEhOpenFile=(HANDLE)CreateFile(szPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
if(hOpenFile==INVALID_HANDLE_VALUE)
{
hOpenFile=NULL;
MessageBoxA(NULL,"Cannotopenthefile","Playwav",MB_OK);
}
fileSize=GetFileSize(hOpenFile,NULL);
pBuffer=(CHAR*)malloc(fileSize);
ReadFile(hOpenFile,pBuffer,fileSize,&RSize,NULL);
free(pBuffer);
}
感谢您的阅读!希望本文对解决您关于createfile的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。