本文整理汇总了C++中GetFilePath函数的典型用法代码示例。如果您正苦于以下问题:C++ GetFilePath函数的具体用法?C++ GetFilePath怎么用?C++ GetFilePath使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetFilePath函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MirrorSetAllocationSize
static NTSTATUS DOKAN_CALLBACK MirrorSetAllocationSize(
LPCWSTR FileName, LONGLONG AllocSize, PDOKAN_FILE_INFO DokanFileInfo) {
WCHAR filePath[MAX_PATH];
HANDLE handle;
LARGE_INTEGER fileSize;
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"SetAllocationSize %s, %I64d\n", filePath, AllocSize);
handle = (HANDLE)DokanFileInfo->Context;
if (!handle || handle == INVALID_HANDLE_VALUE) {
DbgPrint(L"\tinvalid handle\n\n");
return STATUS_INVALID_HANDLE;
}
if (GetFileSizeEx(handle, &fileSize)) {
if (AllocSize < fileSize.QuadPart) {
fileSize.QuadPart = AllocSize;
if (!SetFilePointerEx(handle, fileSize, NULL, FILE_BEGIN)) {
DWORD error = GetLastError();
DbgPrint(L"\tSetAllocationSize: SetFilePointer eror: %d, "
L"offset = %I64d\n\n",
error, AllocSize);
return ToNtStatus(error);
}
if (!SetEndOfFile(handle)) {
DWORD error = GetLastError();
DbgPrint(L"\tSetEndOfFile error code = %d\n\n", error);
return ToNtStatus(error);
}
}
} else {
DWORD error = GetLastError();
DbgPrint(L"\terror code = %d\n\n", error);
return ToNtStatus(error);
}
return STATUS_SUCCESS;
}
示例2: throw
bool emAvFileModel::TryContinueLoading() throw(emString)
{
switch (GetStreamState()) {
case STREAM_CLOSED:
OpenStream("none","none",GetFilePath());
return false;
case STREAM_OPENED:
CloseStream();
PlayPos=0;
AudioVolume=100;
AudioMute=false;
LoadAudioVolume();
LoadAudioVisu();
LoadFileState();
return true;
case STREAM_ERRORED:
throw emString(GetStreamErrorText());
default:
emSleepMS(10);
return false;
}
}
示例3: MirrorFlushFileBuffers
static NTSTATUS DOKAN_CALLBACK
MirrorFlushFileBuffers(LPCWSTR FileName, PDOKAN_FILE_INFO DokanFileInfo) {
WCHAR filePath[MAX_PATH];
HANDLE handle = (HANDLE)DokanFileInfo->Context;
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"FlushFileBuffers : %s\n", filePath);
if (!handle || handle == INVALID_HANDLE_VALUE) {
DbgPrint(L"\tinvalid handle\n\n");
return STATUS_SUCCESS;
}
if (FlushFileBuffers(handle)) {
return STATUS_SUCCESS;
} else {
DWORD error = GetLastError();
DbgPrint(L"\tflush error code = %d\n", error);
return ToNtStatus(error);
}
}
示例4: item
/*----------------------------------------------------------------------
| PLT_FileMediaServer::OnBrowseMetadata
+---------------------------------------------------------------------*/
NPT_Result
PLT_FileMediaServer::OnBrowseMetadata(PLT_ActionReference& action,
const char* object_id,
NPT_SocketInfo* info /* = NULL */)
{
NPT_String didl;
/* locate the file from the object ID */
NPT_String filepath;
if (NPT_FAILED(GetFilePath(object_id, filepath))) {
/* error */
NPT_LOG_WARNING("PLT_FileMediaServer::OnBrowse - ObjectID not found.");
action->SetError(701, "No Such Object.");
return NPT_FAILURE;
}
NPT_Reference<PLT_MediaObject> item(BuildFromFilePath(filepath, true, info));
if (item.IsNull()) return NPT_FAILURE;
NPT_String filter;
NPT_CHECK_SEVERE(action->GetArgumentValue("Filter", filter));
NPT_String tmp;
NPT_CHECK_SEVERE(PLT_Didl::ToDidl(*item.AsPointer(), filter, tmp));
/* add didl header and footer */
didl = didl_header + tmp + didl_footer;
NPT_CHECK_SEVERE(action->SetArgumentValue("Result", didl));
NPT_CHECK_SEVERE(action->SetArgumentValue("NumberReturned", "1"));
NPT_CHECK_SEVERE(action->SetArgumentValue("TotalMatches", "1"));
// update ID may be wrong here, it should be the one of the container?
NPT_CHECK_SEVERE(action->SetArgumentValue("UpdateId", "1"));
// TODO: We need to keep track of the overall updateID of the CDS
return NPT_SUCCESS;
}
示例5: MirrorSetFileAttributes
static int DOKAN_CALLBACK
MirrorSetFileAttributes(
LPCWSTR FileName,
DWORD FileAttributes,
PDOKAN_FILE_INFO DokanFileInfo)
{
UNREFERENCED_PARAMETER(DokanFileInfo);
WCHAR filePath[MAX_PATH];
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"SetFileAttributes %s\n", filePath);
if (!SetFileAttributes(filePath, FileAttributes)) {
DWORD error = GetLastError();
DbgPrint(L"\terror code = %d\n\n", error);
return error * -1;
}
DbgPrint(L"\n");
return 0;
}
示例6: LogError
QVariant ConfigAPI::Read(QString file, QString section, QString key, const QVariant &defaultValue) const
{
if (configFolder_.isEmpty())
{
LogError("ConfigAPI::Read: Config folder has not been prepared, returning null QVariant.");
return "";
}
PrepareString(file);
PrepareString(section);
PrepareString(key);
// Don't return 'defaultValue' but null QVariant
// as this is an error situation.
if (!IsFilePathSecure(file))
return QVariant();
QSettings config(GetFilePath(file), QSettings::IniFormat);
if (section.isEmpty())
return config.value(key, defaultValue);
else
return config.value(section + "/" + key, defaultValue);
}
示例7: Navigate
BOOL CBrowserView::RefreshView()
{
CBonfireDoc* pDoc = (CBonfireDoc*)GetDocument();
CString docPath = pDoc->GetPathName();
if (!pDoc->IsModified())
{
// display the file in the browser viewer
Navigate(docPath);
}
else
{
CString strAbsPath = theApp.m_pszHelpFilePath;
DWORD nSize = 128;
char* lpValue = (char*)malloc( nSize );
int retVal = GetEnvironmentVariable("TEMP", lpValue, nSize);
if (retVal <= (int)nSize)
strAbsPath = lpValue;
else if (retVal == 0)
{
// try TMP
retVal = GetEnvironmentVariable("TMP", lpValue, nSize);
if (retVal <= (int)nSize)
strAbsPath = lpValue;
}
// generate a temp file
CString navPath = GetFilePath( AddSlash(strAbsPath) ) + "btmp_" + GetFileTitle( docPath );
pDoc->m_xTextBuffer.SaveToFile(navPath, CRLF_STYLE_AUTOMATIC, FALSE);
// mark the file as temporary for later deletion
theApp.AddTempFile( navPath );
// display the file in the browser viewer
Navigate(navPath);
}
return TRUE;
}
示例8: MirrorUnlockFile
static int
MirrorUnlockFile(
LPCWSTR FileName,
LONGLONG ByteOffset,
LONGLONG Length,
PDOKAN_FILE_INFO DokanFileInfo)
{
WCHAR filePath[MAX_PATH+1];
HANDLE handle;
LARGE_INTEGER length;
LARGE_INTEGER offset;
GetFilePath(filePath, FileName);
DbgPrint(L"UnlockFile %s\n", filePath);
/*
handle = (HANDLE)DokanFileInfo->Context;
if (!handle || handle == INVALID_HANDLE_VALUE) {
DbgPrint(L"\tinvalid handle\n\n");
return -1;
}
length.QuadPart = Length;
offset.QuadPart = ByteOffset;
if (UnlockFile(handle, offset.HighPart, offset.LowPart, length.HighPart, length.LowPart)) {
DbgPrint(L"\tsuccess\n\n");
return 0;
} else {
DbgPrint(L"\tfail\n\n");
return -1;
}
*/
return 0;
}
示例9: GetFilePath
nsresult nsNntpUrl::ParseNewsURL()
{
// The path here is the group/msgid portion
nsAutoCString path;
nsresult rv = GetFilePath(path);
NS_ENSURE_SUCCESS(rv, rv);
// Drop the potential beginning from the path
if (path.Length() && path[0] == '/')
path = Substring(path, 1);
// The presence of an `@' is a sign we have a msgid
if (path.Find("@") != -1 || path.Find("%40") != -1)
{
MsgUnescapeString(path, 0, m_messageID);
// Set group, key for ?group=foo&key=123 uris
nsAutoCString spec;
GetSpec(spec);
int32_t groupPos = spec.Find(kNewsURIGroupQuery); // find ?group=
int32_t keyPos = spec.Find(kNewsURIKeyQuery); // find &key=
if (groupPos != kNotFound && keyPos != kNotFound)
{
// get group name and message key
m_group = Substring(spec, groupPos + kNewsURIGroupQueryLen,
keyPos - groupPos - kNewsURIGroupQueryLen);
nsCString keyStr(Substring(spec, keyPos + kNewsURIKeyQueryLen));
m_key = keyStr.ToInteger(&rv, 10);
NS_ENSURE_SUCCESS(rv, NS_ERROR_MALFORMED_URI);
}
}
else
MsgUnescapeString(path, 0, m_group);
return NS_OK;
}
示例10: MirrorSetEndOfFile
static NTSTATUS DOKAN_CALLBACK
MirrorSetEndOfFile(
LPCWSTR FileName,
LONGLONG ByteOffset,
PDOKAN_FILE_INFO DokanFileInfo)
{
WCHAR filePath[MAX_PATH];
HANDLE handle;
LARGE_INTEGER offset;
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"SetEndOfFile %s, %I64d\n", filePath, ByteOffset);
handle = (HANDLE)DokanFileInfo->Context;
if (!handle || handle == INVALID_HANDLE_VALUE) {
DbgPrint(L"\tinvalid handle\n\n");
return STATUS_INVALID_HANDLE;
}
offset.QuadPart = ByteOffset;
if (!SetFilePointerEx(handle, offset, NULL, FILE_BEGIN)) {
DWORD error = GetLastError();
DbgPrint(L"\tSetFilePointer error: %d, offset = %I64d\n\n",
error, ByteOffset);
return ToNtStatus(error);
}
if (!SetEndOfFile(handle)) {
DWORD error = GetLastError();
DbgPrint(L"\tSetEndOfFile error code = %d\n\n", error);
return ToNtStatus(error);
}
return STATUS_SUCCESS;
}
示例11: MirrorCleanup
static void DOKAN_CALLBACK
MirrorCleanup(
LPCWSTR FileName,
PDOKAN_FILE_INFO DokanFileInfo)
{
WCHAR filePath[MAX_PATH];
GetFilePath(filePath, MAX_PATH, FileName);
if (DokanFileInfo->Context) {
DbgPrint(L"Cleanup: %s\n\n", filePath);
CloseHandle((HANDLE)DokanFileInfo->Context);
DokanFileInfo->Context = 0;
if (DokanFileInfo->DeleteOnClose) {
DbgPrint(L"\tDeleteOnClose\n");
if (DokanFileInfo->IsDirectory) {
DbgPrint(L" DeleteDirectory ");
if (!RemoveDirectory(filePath)) {
DbgPrint(L"error code = %d\n\n", GetLastError());
} else {
DbgPrint(L"success\n\n");
}
} else {
DbgPrint(L" DeleteFile ");
if (DeleteFile(filePath) == 0) {
DbgPrint(L" error code = %d\n\n", GetLastError());
} else {
DbgPrint(L"success\n\n");
}
}
}
} else {
DbgPrint(L"Cleanup: %s\n\tinvalid handle\n\n", filePath);
}
}
示例12: MirrorEnumerateNamedStreams
static int DOKAN_CALLBACK
MirrorEnumerateNamedStreams(
LPCWSTR FileName,
PVOID* EnumContext,
LPWSTR StreamName,
PULONG StreamNameLength,
PLONGLONG StreamSize,
PDOKAN_FILE_INFO DokanFileInfo)
{
HANDLE handle;
WCHAR filePath[MAX_PATH];
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"EnumerateNamedStreams %s\n", filePath);
handle = (HANDLE)DokanFileInfo->Context;
if (!handle || handle == INVALID_HANDLE_VALUE) {
DbgPrint(L"\tinvalid handle\n\n");
return -1;
}
// As we are requested one by one, it would be better to use FindFirstStream / FindNextStream instead of requesting all streams each time
// But this doesn't really matter on mirror sample
BYTE InfoBlock[64 * 1024];
PFILE_STREAM_INFORMATION pStreamInfo = (PFILE_STREAM_INFORMATION)InfoBlock;
IO_STATUS_BLOCK ioStatus;
ZeroMemory(InfoBlock, sizeof(InfoBlock));
NTSTATUS status = NtQueryInformationFile(handle, &ioStatus, InfoBlock, sizeof(InfoBlock), FileStreamInformation);
if (status != STATUS_SUCCESS) {
DbgPrint(L"\tNtQueryInformationFile failed with %d.\n", status);
return -1;
}
if (pStreamInfo->StreamNameLength == 0) {
DbgPrint(L"\tNo stream found.\n");
return -1;
}
UINT index = (UINT)*EnumContext;
DbgPrint(L"\tStream #%d requested.\n", index);
for (UINT i = 0; i != index; ++i) {
if (pStreamInfo->NextEntryOffset == 0) {
DbgPrint(L"\tNo more stream.\n");
return -1;
}
pStreamInfo = (PFILE_STREAM_INFORMATION) ((LPBYTE)pStreamInfo + pStreamInfo->NextEntryOffset); // Next stream record
}
wcscpy_s(StreamName, SHRT_MAX + 1, pStreamInfo->StreamName);
*StreamNameLength = pStreamInfo->StreamNameLength;
*StreamSize = pStreamInfo->StreamSize.QuadPart;
DbgPrint(L"\t Stream %ws\n", pStreamInfo->StreamName);
// Remember next stream entry index
*EnumContext = (PVOID)++index;
return 0;
}
示例13: MirrorCreateFile
static int DOKAN_CALLBACK
MirrorCreateFile(
LPCWSTR FileName,
DWORD AccessMode,
DWORD ShareMode,
DWORD CreationDisposition,
DWORD FlagsAndAttributes,
PDOKAN_FILE_INFO DokanFileInfo)
{
WCHAR filePath[MAX_PATH];
HANDLE handle;
DWORD fileAttr;
GetFilePath(filePath, MAX_PATH, FileName);
DbgPrint(L"CreateFile : %s\n", filePath);
PrintUserName(DokanFileInfo);
if (CreationDisposition == CREATE_NEW)
DbgPrint(L"\tCREATE_NEW\n");
if (CreationDisposition == OPEN_ALWAYS)
DbgPrint(L"\tOPEN_ALWAYS\n");
if (CreationDisposition == CREATE_ALWAYS)
DbgPrint(L"\tCREATE_ALWAYS\n");
if (CreationDisposition == OPEN_EXISTING)
DbgPrint(L"\tOPEN_EXISTING\n");
if (CreationDisposition == TRUNCATE_EXISTING)
DbgPrint(L"\tTRUNCATE_EXISTING\n");
/*
if (ShareMode == 0 && AccessMode & FILE_WRITE_DATA)
ShareMode = FILE_SHARE_WRITE;
else if (ShareMode == 0)
ShareMode = FILE_SHARE_READ;
*/
DbgPrint(L"\tShareMode = 0x%x\n", ShareMode);
MirrorCheckFlag(ShareMode, FILE_SHARE_READ);
MirrorCheckFlag(ShareMode, FILE_SHARE_WRITE);
MirrorCheckFlag(ShareMode, FILE_SHARE_DELETE);
DbgPrint(L"\tAccessMode = 0x%x\n", AccessMode);
MirrorCheckFlag(AccessMode, GENERIC_READ);
MirrorCheckFlag(AccessMode, GENERIC_WRITE);
MirrorCheckFlag(AccessMode, GENERIC_EXECUTE);
MirrorCheckFlag(AccessMode, DELETE);
MirrorCheckFlag(AccessMode, FILE_READ_DATA);
MirrorCheckFlag(AccessMode, FILE_READ_ATTRIBUTES);
MirrorCheckFlag(AccessMode, FILE_READ_EA);
MirrorCheckFlag(AccessMode, READ_CONTROL);
MirrorCheckFlag(AccessMode, FILE_WRITE_DATA);
MirrorCheckFlag(AccessMode, FILE_WRITE_ATTRIBUTES);
MirrorCheckFlag(AccessMode, FILE_WRITE_EA);
MirrorCheckFlag(AccessMode, FILE_APPEND_DATA);
MirrorCheckFlag(AccessMode, WRITE_DAC);
MirrorCheckFlag(AccessMode, WRITE_OWNER);
MirrorCheckFlag(AccessMode, SYNCHRONIZE);
MirrorCheckFlag(AccessMode, FILE_EXECUTE);
MirrorCheckFlag(AccessMode, STANDARD_RIGHTS_READ);
MirrorCheckFlag(AccessMode, STANDARD_RIGHTS_WRITE);
MirrorCheckFlag(AccessMode, STANDARD_RIGHTS_EXECUTE);
// When filePath is a directory, needs to change the flag so that the file can be opened.
fileAttr = GetFileAttributes(filePath);
if (fileAttr != INVALID_FILE_ATTRIBUTES && fileAttr & FILE_ATTRIBUTE_DIRECTORY) {
FlagsAndAttributes |= FILE_FLAG_BACKUP_SEMANTICS;
//AccessMode = 0;
}
DbgPrint(L"\tFlagsAndAttributes = 0x%x\n", FlagsAndAttributes);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_ARCHIVE);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_ENCRYPTED);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_HIDDEN);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_NORMAL);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_OFFLINE);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_READONLY);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_SYSTEM);
MirrorCheckFlag(FlagsAndAttributes, FILE_ATTRIBUTE_TEMPORARY);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_WRITE_THROUGH);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_OVERLAPPED);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_NO_BUFFERING);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_RANDOM_ACCESS);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_SEQUENTIAL_SCAN);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_DELETE_ON_CLOSE);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_BACKUP_SEMANTICS);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_POSIX_SEMANTICS);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_OPEN_REPARSE_POINT);
MirrorCheckFlag(FlagsAndAttributes, FILE_FLAG_OPEN_NO_RECALL);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_ANONYMOUS);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_IDENTIFICATION);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_IMPERSONATION);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_DELEGATION);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_CONTEXT_TRACKING);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_EFFECTIVE_ONLY);
MirrorCheckFlag(FlagsAndAttributes, SECURITY_SQOS_PRESENT);
//.........这里部分代码省略.........
示例14: GetFreeDisk
Int64 GetFreeDisk(const char *FileName)
{
#ifdef _WIN_32
char Root[NM];
GetPathRoot(FileName,Root);
typedef BOOL (WINAPI *GETDISKFREESPACEEX)(
LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER
);
static GETDISKFREESPACEEX pGetDiskFreeSpaceEx=NULL;
if (pGetDiskFreeSpaceEx==NULL)
{
HMODULE hKernel=GetModuleHandle("kernel32.dll");
if (hKernel!=NULL)
pGetDiskFreeSpaceEx=(GETDISKFREESPACEEX)GetProcAddress(hKernel,"GetDiskFreeSpaceExA");
}
if (pGetDiskFreeSpaceEx!=NULL)
{
GetFilePath(FileName,Root);
ULARGE_INTEGER uiTotalSize,uiTotalFree,uiUserFree;
uiUserFree.u.LowPart=uiUserFree.u.HighPart=0;
if (pGetDiskFreeSpaceEx(*Root ? Root:NULL,&uiUserFree,&uiTotalSize,&uiTotalFree) &&
uiUserFree.u.HighPart<=uiTotalFree.u.HighPart)
return(int32to64(uiUserFree.u.HighPart,uiUserFree.u.LowPart));
}
DWORD SectorsPerCluster,BytesPerSector,FreeClusters,TotalClusters;
if (!GetDiskFreeSpace(*Root ? Root:NULL,&SectorsPerCluster,&BytesPerSector,&FreeClusters,&TotalClusters))
return(1457664);
Int64 FreeSize=SectorsPerCluster*BytesPerSector;
FreeSize=FreeSize*FreeClusters;
return(FreeSize);
#elif defined(_BEOS)
char Root[NM];
GetFilePath(FileName,Root);
dev_t Dev=dev_for_path(*Root ? Root:".");
if (Dev<0)
return(1457664);
fs_info Info;
if (fs_stat_dev(Dev,&Info)!=0)
return(1457664);
Int64 FreeSize=Info.block_size;
FreeSize=FreeSize*Info.free_blocks;
return(FreeSize);
#elif defined(_UNIX)
return(1457664);
#elif defined(_EMX)
int Drive=(!isalpha(FileName[0]) || FileName[1]!=':') ? 0:toupper(FileName[0])-'A'+1;
if (_osmode == OS2_MODE)
{
FSALLOCATE fsa;
if (DosQueryFSInfo(Drive,1,&fsa,sizeof(fsa))!=0)
return(1457664);
Int64 FreeSize=fsa.cSectorUnit*fsa.cbSector;
FreeSize=FreeSize*fsa.cUnitAvail;
return(FreeSize);
}
else
{
union REGS regs,outregs;
memset(®s,0,sizeof(regs));
regs.h.ah=0x36;
regs.h.dl=Drive;
_int86 (0x21,®s,&outregs);
if (outregs.x.ax==0xffff)
return(1457664);
Int64 FreeSize=outregs.x.ax*outregs.x.cx;
FreeSize=FreeSize*outregs.x.bx;
return(FreeSize);
}
#else
#define DISABLEAUTODETECT
return(1457664);
#endif
}
示例15: GetFilePath
int svlFilterVideoFileWriter::GetFilePath(std::string &filepath, unsigned int videoch) const
{
filepath = GetFilePath(videoch);
if (filepath.empty()) return SVL_FAIL;
return SVL_OK;
}