Kullanıcının Temp dizinindeki bir klasörü silmeye çalışıyorum% localappdata%/Temp bazı boş klasörleri temizlemeye çalışıyorum ancak nasıl yapılacağını da bilmiyorum. Unicode yolları dikkate almanız gerekir.Kullanıcı Temp dizinindeki klasörü silin ama aynı zamanda unicode foldernames'i de hesaba katın
ben kullanıyordum,
double delete_tempfolder(const char* directory_name) {
rmdir(directory_name);
return 1;
}
int main(){
delete_tempfolder("C:\\Users\\USER\\AppData\\Local\\Temp\\TMPDIR");
cin.get();
return 0;
}
ama en kısa dizin ASCII olmayan karakterler kullanıldığı gibi, rmdir çalışmayı durdurdu, ben mümkün genellikle bu yoldaki adı klasör olarak unicode karakterleri ile çalışmaktan gerekir Onları al.
Hangi derleyiciyi kullanıyorsunuz? Bir 'char' dizisi geniş dizeleri tutamaz. Visual Studio'da [_wrmdir] kullanabilirsiniz (https://msdn.microsoft.com/en-us/library/wt8es881.aspx) –
Ben MinGW g ++ ile -static-libgcc -static-libstdC++ -D UNICODE -D kullanıyorum _UNICODE -O3 -DNDEBUG -s -o "_Test.exe" – user780756
MinGW, '_wrmdir() 'öğesine hala erişebilmelidir. Değilse, MinGW-w64 kullanın. Dize değişmezlerinizi 'L' ('L' C: \\ whatever.txt '') ile önlediğinizden emin olun ve 'char *' yerine 'wchar_t *' kullanın. – andlabs