Путь к рабочему столу /Users/[username]/Desktop/
~/Desktop/
- это независимый от пользователя способ обозначения этого, ~
представляет домашний каталог текущих пользователей. Его необходимо расширить с помощью метода, подобного stringByExpandingTildeInPath
Не уверен насчет использования C # (я никогда не использовал его в Mac OS X), но в Objective-C / Cocoa вы бы это сделали ..
// Get array with first index being path to desktop
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
// Get the first element
NSString *desktopPath = [paths objectAtIndex:0];
// Append words.txt to path
NSString *theFilePath = [desktopPath stringByAppendingPathComponent:@"words.txt"];
NSLog(@"%@", theFilePath);
Это наиболее надежный способ получения пути к рабочему столу, поскольку пользователь может технически переместить свою папку рабочего стола в другое место (хотя это маловероятно). Другим допустимым вариантом является использование метода NSString stringByExpandingTildeInPath
:
NSString *desktop = [@"~/Desktop" stringByExpandingTildeInPath];
NSString *theFile = [desktop stringByAppendingPathComponent:@"words.txt"]
Как я уже сказал, оба они в Objective-C, но это не должно быть сложно перевести на C #, при условии, что вы можете получить в библиотеках Какао.
Код, который вы разместили, работает правильно:
dbr:.../build/Debug $ ./yourcode ~/Desktop/words.txt
yourcode[2106:903] russ
yourcode[2106:903] this is words.txt is 17 chars long
Ваш терминал автоматически расширяет ~/
путь тильды