2015-11-13 104 views
2

我必須從X ++代碼中刪除文件如何從代碼中刪除文件?

我在方法中使用此代碼:

TextIO textIO; 

str filename, fileOpen, folder; 
int handle; 
Io thisMYFile; 
FileIoPermission perm; 

#File 
#avifiles 
#OCCRetryCount 

[handle, filename] = WINAPI::findFirstFile(folder + "\\*.csv"); 

fileOpen = strFmt (folder + "\\" + filename); 

perm = new FileIoPermission(fileOpen, 'w'); 
perm.assert(); 

thisMYFile = new CommaTextIo(fileOpen , 'w'); 

WinApi::deleteFile(fileOpen); 
} 

} 
catch 
{} 
} 

價值FILEOPEN是:C:\用戶\ MyUserName輸入\桌面\ MyFolder文件\ myFile.csv

我可以閱讀並填寫表格,但是當我要刪除它,它的錯誤與

趕上(例外:: CLRError)

(在班\ WinAPI的\的DeleteFile )。

是否有權限問題?

回答

4

您仍然通過thisMYFile變量打開該文件。

... 
perm = new FileIoPermission(fileOpen, 'w'); 
perm.assert(); 

thisMYFile = new CommaTextIo(fileOpen , 'w'); 
// Do stuff 
thisMYFile = null; 

WinApi::deleteFile(fileOpen); 
... 
+3

謹防WinAPI的功能,工作在僅客戶端:
它試圖刪除文件之前設置爲null。它不會批量工作。 –

+1

如果批量使用'WinAPIServer :: deleteFile(...)',它應該可以工作。 –

+0

感謝您的幫助! – ulisses