2015-11-13 2 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: \ Users \ MyUserName \ Desktop \ MyFolder \ myFile.csv.

я могу прочитать и заполнить таблицу, но когда я должен удалить его, это ошибки с

уловом (Exception :: CLRError)

(в классах \ WinAPI \ DeleteFile).

Есть ли проблема с разрешением?

ответ

4

У вас все еще есть файл, открытый через переменную thisMYFile.
Установите его null, прежде чем пытаться удалить файл:

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

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

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

Берегитесь функции WinAPI работает только в клиенте. Он не будет работать в пакетном режиме. –

+1

Используйте 'WinAPIServer :: deleteFile (...)' если в пакетном режиме и он должен работать. –

+0

Спасибо за помощь! – ulisses

 Смежные вопросы

  • Нет связанных вопросов^_^