cfile創建文件夾
⑴ MFC我怎麼才能用當前時間作為新建文件夾的名稱
應該是你的路徑寫法不正確造成的,是不是沒有注意'\'的寫法,在C++里要表示'\'就要寫成'\\'。
比如表示"C:\1\2.txt",就應該寫成"C:\\1\\2.txt"
可以用SHFileOperation這個API函數
下面的例子將「C:\1」目錄下的所有文件(包括文件夾)拷貝到「C:\2」目錄中(C:\2可以不存在):
SHFILEOPSTRUCT shFileOp = {0};
shFileOp.hwnd = NULL;
shFileOp.wFunc = FO_COPY;
shFileOp.pFrom = "C:\\1";
shFileOp.pTo = "C:\\2";
::SHFileOperation(&shFileOp);
注意:shFileOp.pFrom和shFileOp.pTo要使用全路徑,可以使用通配符,如:
shFileOp.pFrom = "C:\\1\\*.txt";
其他不變,則將拷貝所有的TXT文檔。
*********************************************
網上鄰居里好像不能新建文件夾吧?它不能算作文件夾。
要將CEdit里的內容寫入TXT文件:
按住CTRL,雙擊Edit控制項,在彈出的對話框中設置一個CString變數與控制項關聯。
以後調用Updatedata()就可以得到Edit中的內容了。
比如,Edit與m_strText關聯,則代碼如下:
void CFileManipulateDlg::Onbackup()
{
//獲得當前時間並格式化為字元串
CString strTime = CTime::GetCurrentTime().Format("%Y-%m-%d");
//路徑,我用的根目錄是"c:",你可以根據自己需要修改,
//如果就是程序當前的目錄,則用相對路徑,直接寫文件夾的名稱
CString strPath = "C:\\" + strTime;
//建立文件夾
CreateDirectory(strPath, NULL);
//txt文件路徑,TXT文檔名為backup.txt
CString strTxtPath = strPath + "\\backup.txt";
//新建一個空的txt文檔
CFile txtfile(strTxtPath, CFile::modeCreate | CFile::modeWrite);
//後面可對TXT文檔進行寫操作,參見CFile類
//調用完後UpdateData(),m_strText的值就會變成Edit框中的內容了
UpdateData();
//CString strTxt = "Hello,world!";
//將Edit中的內容寫入Txt文檔
txtfile.Write((LPCTSTR)m_strText, m_strText.GetLength());
//最後關閉Txt文檔
txtfile.Close();
}
⑵ vc寫入TXT文本文件和創建文件夾的問題,詳細如下
考慮MakeSureDirectoryPathExists函數.在新建txt文件前,先判斷該目錄是否存在,若不存在,則新建。
需加入頭文件:#include <imagehlp.h>
需添加庫連接:imagehlp.lib
Eg:
MakeSureDirectoryPathExists("C:\\111\\222\\333\\");//注意:333最後的\\一定要保留,否則,333如果不存在的話,無法建立。
⑶ C++中如何創建文件和目錄
如果是VC的話,文件操作如下:
文件打開:
char* pszFileName = "c:\\test\\myfile.dat";
CFile myFile;
CFileException fileException;
if ( !myFile.Open( pszFileName, CFile::modeCreate |
CFile::modeReadWrite, &fileException ) )
{
TRACE( "Can't open file %s, error = %u\n",
pszFileName, fileException.m_cause );
}
文件讀寫:
char szBuffer[256];
UINT nActual = 0;
CFile myFile;
myFile.Write( szBuffer, sizeof( szBuffer ) );
myFile.Seek( 0, CFile::begin );
nActual = myFile.Read( szBuffer, sizeof( szBuffer ) );
關閉:
myFile.Close();
文件定位:
long offset = 1000; // 偏移量
long cpos; // 當前位置
cpos = myFile.Seek(offset,CFile::begin);
結果是cpos的值為1000
文件的查找
當對一個文件操作時,如果不知道該文件是否存在,就要首先進行查找。MFC中有一個專門用來進行文件查找的類CFileFind,使用它可以方便快捷地進行文件的查找。下面這段代碼演示了這個類的最基本使用方法。
CString strFileTitle;
CFileFind finder;
BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");
while(bWorking)
{
bWorking=finder.FindNextFile();
strFileTitle=finder.GetFileTitle();
}
如果你要進行的文件操作只是簡單的讀寫整行的字元串,我建議你使用CStdioFile,用它來進行此類操作非常方便,如下例。
CStdioFile mFile;
CFileException mExcept;
mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, &mExcept);
CString string="I am a string.";
mFile.WriteString(string);
mFile.Close();
⑷ 我用CftpConnection類的成員函數在ftp伺服器上創建一個文件夾,可怎麼把文件上傳到這個創建的文件夾呢
和本地文件讀寫類似的
先以讀方式打開本地文件,再以寫方式打開FTP遠程文件,然後讀取本地文件至遠程文件。
關鍵代碼:
bOpen=m_CFile.Open(m_str_LocalFileName,CFile::modeRead);
m_pRemoteFile=m_pConnect->OpenFile(m_str_remoteFileName,GENERIC_WRITE);
while((dwRead=m_CFile.Read(pBuf,m_FileLenStep))>0)
{
m_pRemoteFile->Write(pBuf,dwRead);
m_CurUploadSize+=dwRead;
}
⑸ 一個c語言編程問題,建立一百個目錄,分別叫1,2,3,4,5...100
給你思路,剩下自己網路就行了,其實就是全部都用CFile的函數就可以 了,內容的話,從1開始輸出這種就不用介紹怎麼實現了吧。。。
1、創建文件夾,用CFile就可以了,裡面有makeDir的函數
2、創建文件,這一步不需要可以去做,只要調用輸出文件流,系統檢測到文件不存在會自動生成。
3、輸出內容,也是CFile的函數,內容的話就不用教你怎麼實現了吧。。。
⑹ CFile和CreateFile疑問
創建目錄有創建目錄的函數
這是你要做的事情
創建文件的函數不會去做這事情
⑺ C#新建文件夾,並給它命名當前時間
C#使用Directory.CreateDirectory函數創建文件夾,使用DateTime.Now得到當前時間,因為文件夾的命名規則中不允許出現冒號等特殊符號,可以把時間格式化成純數字格式,使用
DateTime.Now.ToString("yyyyMMddHHmmss")意思為把2015-12-28 10:30:01這樣的時間轉換為20151228103001這樣的格式表示,代碼如下所示:
///<summary>
///創建當前時間為名稱的目錄
///</summary>
///<paramname="root">創建目錄的位置</param>
voidTest(stringroot)
{
Directory.CreateDirectory(root+"\"+DateTime.Now.ToString("yyyyMMddHHmmss"));
}
Directory.CreateDirectory 方法
按照 path 的指定創建所有目錄和子目錄。
Namespace: System.IO
語法
public static DirectoryInfo CreateDirectory(
string path
)
參數
path類型: System.String
要創建的目錄路徑。
返回值
類型: System.IO.DirectoryInfo
由 path 指定的 DirectoryInfo。