testwarfile.cpp
来自「ftpserver very good sample」· C++ 代码 · 共 91 行
CPP
91 行
#include "stdafx.h"#include <assert.h>#include <iostream>#include "WarPath.h"#include "WarUtf8.h"#include "WarFile.h"#include "WarFileDriverWin32.h"#include "WarLog.h"#include "WarLogIOStreamHandler.h"#include "WarDirList.h"using namespace std;void TestWarFile(){ // Enable logging. WarLogEngine log_engine; log_engine.InstallHandler(new WarLogIoStreamHandler(cout, "cout")); // Enable debug events we want to view log_engine.EnableEvent("cout", WARLOG_FILES); log_engine.EnableEvent("cout", WARLOG_DEBUG); // Enable use of WarFile WarFileEngine file_engine; // Install "file://" driver for Win32 file_engine.AttachDriver(new WarFileDriverWin32); { war_file_ptr_t my_file_ptr = WarFile::Create("test.file"); try { my_file_ptr.GetData().Open(WarFile::F_WRITE | WarFile::F_TRUNCATE); static const char *out_buf = "test\nLine 2\nline 3"; my_file_ptr.GetData().Write((war_ccptr_t)out_buf, ::strlen(out_buf)); cout << "Size of binary file is " << (size_t)my_file_ptr.GetData().GetLength() << " bytes" << endl; my_file_ptr.GetData().Close(); my_file_ptr.GetData().Open(WarFile::F_READ | WarFile::F_MUSTEXIST | WarFile::F_TEXT); cout << "Size of the same file opened in TEXT mode is " << (size_t)my_file_ptr.GetData().GetLength() << " bytes" << endl; string str_buffer; while(my_file_ptr.GetData().ReadLine(str_buffer)) cout << '\t' << str_buffer << endl; } catch(WarException& ex) { cout << "File operation failed: " << ex.Explain() << endl; } }#ifdef WIN32 WarUrl DirPath = "file:///C:\\";#else WarUrl DirPath = "file:///";#endif cout << "Listing dierctory:" << endl; WarDirList DirListing; DirListing.Create(DirPath, true); for(WarDirList::nodelist_t::const_iterator P = DirListing.mList.begin() ; P != DirListing.mList.end() ; P++) { const WarDirListNode& node = P->Data(); cout << '\t' << node.mName << endl; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?