\SQLEXPRESS;Integrated Security=SSPI; AttachDBFilename=|DataDirectory|data.mdf; User Instance=true" 这里有一个 DataDirectory的宏,他表示什么意义呢? DataDirectory 是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。 例如,无需使用以下连接字符串: "Data Source= c:\program files\MyApp\app_data\Mydb.mdf" 通过使用 |DataDirectory|(包含在如下所示的竖线中 ),即可具有以下连接字符串: "Data Source = |DataDirectory|\Mydb.mdf" 这里的一篇文章Working with local databases详细的解释了DataDirectory
---- 通过查看出错的信息,发现 AttachDBFilename=|DataDirectory|\MusicDBContext.mdf 有问题,而这又是没有问题的,这到底是怎么回事? 于是,通过MSDN查找相关资料,通过以下方法获得DataDirectory指定的路径是什么: object path = AppDomain.CurrentDomain.GetData("DataDirectory 一般控制台或者Windows Form程序根据是Debug还是Release决定DataDirectory的初始化路径为Bebug文件夹还是Release文件夹吗? 这个错了。 来指定DataDirectory的初始化路径,代码如下: AppDomain.CurrentDomain.SetData("DataDirectory", Environment.CurrentDirectory DataDirectory|MusicDBContext.mdf 2)如果是ASP.NET程序,DataDirectory的初始化目录为App_Data。
|\FnDB.mdb" providerName="System.Data.OleDb"/> </connectionStrings> |DataDirectory|会被自动解析到App_Data 官方文档地址 :对 |DataDirectory| 替代字符串和 Web 应用程序根目录运算符 (~) 的支持 3、注意事项 1)|DataDirectory| 仅能应指定在路径的开头,放在任何其他位置将得不到解析 如 |DataDirectory|\FnDB.mdf被解析为 项目根目录\App_Data\FnDB.mdf,而\data\|DataDirectory| \FnDB.mdf 则视为物理路径,不会对|DataDirectory |做解析) 2)|DataDirectory| 在WebForm项目下默认为 项目根目录\App_Data文件夹,在Winform和控制台项目下,则为 项目根目录\bin\debug 或 项目根目录\bin ","个人目录字符串") 来自定义|DataDirectory|的对应路径,接着去除掉debug模式和release模式的路径不同之处。
有一篇文章,专门解释DataDirectory是什么。 附 录: DataDirectory是什么? DataDirectory的宏,它表示什么意义呢? DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。 ),即可具有以下连接字符串: "Data Source = |DataDirectory|/Mydb.mdf" 。
这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的 App_Data 目录所代替。 PS: DataDirectory是什么? DataDirectory的宏,它表示什么意义呢? DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。 ),即可具有以下连接字符串: “Data Source = |DataDirectory|/Mydb.mdf” 。
上的文件读取数据,DStream 可以使用如下命令创建: Java: streamingContext.fileStream<KeyClass, ValueClass, InputFormatClass>(dataDirectory ); Scala: streamingContext.fileStream[KeyClass, ValueClass, InputFormatClass](dataDirectory) Spark Streaming 会监视 dataDirectory 目录并处理在该目录中创建的任何文件(不支持嵌套目录中写入的文件)。 注意 所有文件必须具有相同的数据格式 通过原子地移动或重命名它们到数据目录中,来在dataDirectory目录下创建文件。 一旦移动到dataDirectory目录后,不能进行更改。 对于简单的文本文件,有一个更简单的方法: streamingContext.textFileStream(dataDirectory) 文件流不需要运行接收器(Receiver),因此不需要分配核。
\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" System.Data.SqlClient"/> 2、SQL Server Compact <add name="TestContext" connectionString="Data Source=|<em>DataDirectory</em>
如果需要把持久化方式改为mysql,则需要修改如下配置: <persistenceAdapter> <jdbcPersistenceAdapter dataDirectory=" kahaDB directory="${activemq.data}/kahadb"/> --> </persistenceAdapter> 这里的配置有几个地方大家需要关注下: 配置 说明 dataDirectory 需要配置和broker 的dataDirectory 一致 dataSource 数据源的选择,关联数据库的具体配置,下文会具体说明 useDatabaseLock 是否使用数据库锁,主要是在程序启动的时候会同步查询数据 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost01" dataDirectory="${activemq.data
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32 IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64 m_dwFileAlignment = m_OptionalHeader64.FileAlignment; } return bSuc; } 现在我们将重心放到IMAGE_DATA_DIRECTORY DataDirectory Import Descriptors #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor DataDirectory 于是IMAGE_FILE_HEADER::SizeOfOptionalHeader所指定的可选文件头大小为DataDirectory之前的元素总大小加上6(最后一个目录IMAGE_DIRECTORY_ENTRY_BASERELOC
这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的 App_Data 目录所代替。 DataDirectory 允许开发人员创建基于到数据源的相对路径(而无需指定完整路径)的连接字符串 使用 DataDirectory 时,目录结构中的结果文件的路径不能高于替代字符串指向的目录 如果完全展开的 DataDirectory 为 C:\AppDirectory\app_data,则上面显示的示例连接字符串有效,因为它在 c:\AppDirectory 之下。
uiBaseAddress)->e_lfanew; uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory uiBaseAddress)->e_lfanew; uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory IMAGE_SECTION_HEADER ); } uiValueB = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.DataDirectory uiLibraryAddress)->e_lfanew; uiNameArray = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory OptionalHeader.ImageBase; uiValueB = (ULONG_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.DataDirectory
lpNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size) { return NULL; } lpNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress) { return PIMAGE_EXPORT_DIRECTORY lpExports = (PIMAGE_EXPORT_DIRECTORY)((DWORD)hModuleBase + (DWORD)lpNtHeader->OptionalHeader.DataDirectory lpNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size) { return NULL; } lpNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress) { return
DWORD)pPEHeader + IMAGE_SIZEOF_FILE_HEADER); pImport = (PIMAGE_IMPORT_DESCRIPTOR)(pOptionHeader->DataDirectory DWORD)pPEHeader + IMAGE_SIZEOF_FILE_HEADER); pImport = (PIMAGE_IMPORT_DESCRIPTOR)(pOptionHeader->DataDirectory )((DWORD)pPEHeader + IMAGE_SIZEOF_FILE_HEADER); pImport = (PIMAGE_IMPORT_DESCRIPTOR)(pOptionHeader->DataDirectory )((DWORD)pPEHeader + IMAGE_SIZEOF_FILE_HEADER); pImport = (PIMAGE_IMPORT_DESCRIPTOR)(pOptionHeader->DataDirectory
ntHeader.OptionalHeader.DataDirectory[0].VirtualAddress){ cout << "文件没有导出函数" << endl; cFile.close IMAGE_EXPORT_DIRECTORY expDir; int nExportOffset = rva_to_raw(pSection,nSectionNum,ntHeader.OptionalHeader.DataDirectory
SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory NumberOfRvaAndSizes是用来指明DataDirectory元素的个数。 这儿我们要说一下,我们在IMAGE_FILE_HEADER::SizeOfOptionalHeader得到了可选文件头的大小,而影响可选文件头大小的就是DataDirectory元素的个数(NumberOfRvaAndSizes
)((ULONGLONG)BaseAddress + pDosHeader->e_lfanew); // 判断PE头导出表是否为空 if (pNtHeaders->OptionalHeader.DataDirectory IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress == 0) { return 0; } // 取出导出表偏移 FileOffset = pNtHeaders->OptionalHeader.DataDirectory )((ULONGLONG)BaseAddress + pDosHeader->e_lfanew); // 判断PE头导出表是否为空 if (pNtHeaders->OptionalHeader.DataDirectory IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress == 0) { return 0; } // 取出导出表偏移 FileOffset = pNtHeaders->OptionalHeader.DataDirectory
connectionStrings> <add name=”myConn” connectionString =”Data Source=(LocalDB) \v11.0;AttachDbFilename=|DataDirectory Source属性是数据库服务器,(LocalDB)\V11.0说明使用本地数据库服务器,版本号为11,即SQL Server 2012; AttachDbFilename 属性是指定具体数据为名称及位置,|DataDirectory 使用下面的连接字符串: 复制代码 代码如下: <connectionStrings> <add name=”myConn” connectionString=”Data Source=|DataDirectory
注意相对路径|DataDirectory|...... \MSSQLLocalDB;Initial Catalog=aspnet-manages-c703b6e8-d35a-4082-aadf-60f5ad784980;AttachDbFilename=|DataDirectory "/> <add name ="connstr" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|<em>DataDirectory</em>
SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER32,* PIMAGE_OPTIONAL_HEADER32; 所述DataDirectory 文件格式通过在基本重定位表中存储有关所有这些引用的信息来帮助实现此目的,这些信息可在OptionalHeader中的DataDirectory的目录条目5中找到。 解决导入部分 OptionalHeader中DataDirectory的目录条目1指定要从中导入符号的库列表。 OptionalHeader中DataDirectory的目录条目0包含有关导出函数的信息。
; PIMAGE_IMPORT_DESCRIPTOR import_table = (PIMAGE_IMPORT_DESCRIPTOR)(nt_header->OptionalHeader.DataDirectory IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress + (UINT_PTR)dos_header); DWORD iat_loc = (nt_header->OptionalHeader.DataDirectory IMAGE_DIRECTORY_ENTRY_IAT : IMAGE_DIRECTORY_ENTRY_IMPORT; iat_rva = nt_header->OptionalHeader.DataDirectory [iat_loc].VirtualAddress; iat_size = nt_header->OptionalHeader.DataDirectory[iat_loc].Size;