Can you open a bug entry with clear examples? We should improve this part. After having the interpretation of strings sucks. I do not like it I prefer FileLocator C / 'temp' / 'e8720bb4-b90a-0d00-9b1f-008709e5552b.txt' On Sun, Apr 30, 2017 at 6:54 PM, Casimiro de Almeida Barreto < casimiro.barreto@gmail.com> wrote:
Hello,
-----Mensagem original----- De: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] Em nome de Sven Van Caekenberghe Enviada em: domingo, 30 de abril de 2017 05:30 Para: Pharo Development List <pharo-dev@lists.pharo.org> Assunto: Re: [Pharo-dev] Problem with FileSystem in WIndows
On 30 Apr 2017, at 09:48, Max Leske <maxleske@gmail.com> wrote:
Hi Casimiro,
have you tried using normal slashes in the path name? FileSystem should convert those to system path delimiters automatically. So:
It seems that FileSystem does not convert / into \ . ((FileSystem root) / 'c:\temp\tempfile.txt') writeStream won´t work but... FileStream fileNamed: 'C:\temp\tempfile.txt' works ok.
So... I could make it work for getting a stream both for Unix and Windows:
OSPlatform currentPlatformName = 'unix' ifTrue: [ [ str := (fs / fn) writeStream ] on: Exception do: [ ^ nil ] ] ifFalse: [ [ str := FileStream fileNamed: fn ] on: Exception do: [ ^ nil ] ].
And to delete:
OSPlatform currentPlatformName = 'unix' ifTrue: [ (FileSystem root / aFileName) delete ] ifFalse: [ rgx := RxMatcher forString: '^[A-Z]\:'. drive := rgx matchesIn: aFileName. drive := (drive at: 1) copyWithRegex: '\:' matchesReplacedWith: ''. ((FileLocator driveNamed: drive) / (aFileName copyWithRegex: '^[A-Z]\:' matchesReplacedWith: '')) delete ]
Not good, nor elegant nor anything close to good transparent code but... works :'(
C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt
And possibly you'll need a leading slash, as "C:" is a reference to the
root of the file system:
/C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt
There is also the following option:
FileLocator C / 'temp' / 'e8720bb4-b90a-0d00-9b1f- 008709e5552b.txt'
Cheers, Max
On 30 Apr 2017, at 03:15, Casimiro de Almeida Barreto < casimiro.barreto@gmail.com> wrote:
Good night all.
I´ve had trouble in windows concerning FileSystem.
((FileSystem disk root) / âC:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txtâ) delete
Fails as if the file didn´t exist. Message:
FileDoesNotExist: Path / âC:\temp\e8720bb4-b90a-0d00- 9b1f-008709e5552b.txtâ
And I wonder what´s wrong. Because it works in linux and MacOS.
Trasncript show: ((FileSYstem disk root) / âC:\temp\e8720bb4-b90a-0d00- 9b1f-008709e5552b.txtâ)
Returns:
File @ C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt\
And I wonder where the last \ came from and if is it that is messing all and how to fix things.
Best regards,
Casimiro Barreto
Livre de vÃrus. www.avast.com.
--- Este email foi escaneado pelo Avast antivÃrus. https://www.avast.com/antivirus