我想将TextToSpeech引擎的输出写入我的应用程序的缓存目录.为了让TTS在那里写,我首先必须赋予它权限.但我不知道怎么做.我知道通常这样的问题可以通过交付一个FileDescriptor权限来解决,从而获得访问特定文件的权限.但我无法用TTS做到这一点,因为TextToSpeech.synthesizeToFile方法只接受文件路径为String,no FileDescriptor.那么该怎么办?
为了说明TTS真的没有权限写入我的应用程序的目录,这里是代码......:
TextToSpeech mTts = new new TextToSpeech(context, this);
mTts.synthesizeToFile(text, null, getCacheDir() + "/" + "speech.wav");
Run Code Online (Sandbox Code Playgroud)
和调试器日志:
08-20 14:46:11.257: ERROR/TtsService(336): Can't create
/data/data/com.myorg.myapp/cache/speech.wav due to exception java.io.IOException: Permission denied
Run Code Online (Sandbox Code Playgroud) 我正进入(状态
java.io.FileNotFoundException: /sdcard/Img_1316563834614.jpg (Permission denied)
Run Code Online (Sandbox Code Playgroud)
在尝试之后
mRAF = new RandomAccessFile(mFullPath, "rws");
Run Code Online (Sandbox Code Playgroud)
其中mFullPath是/sdcard/image6456.jpg,/mnt/sdcard/image3579.jpg,file:///sdcard/image34567.jpg等.没有任何作用.已经有了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中的行
我检查过路径/ mnt/sdcard实际上是在那里.也是电话
getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
Run Code Online (Sandbox Code Playgroud)
发出null.我不应该怀疑......
我错过了什么?
谢谢
我在ASP.NET网页的代码后面有一个函数,它创建一个文件然后用javascript命令打开它.这适用于IDE - 它创建文件,询问我要保存文件的位置,我可以保存它等等 - 但是当我安装网站并测试它时,我得到一个UnauthorizedAccessException而只是试图创建C:\ inetpub\wwwroot中文件的目录.
令人沮丧的是,我有一个类似于在服务中运行的功能,并且在C:\ inetpub\wwwroot中创建其目录和文件就好了.
我需要做些什么才能让它适用于网页?
if(!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
StreamWriter SW = new StreamWriter(fullpath, false, Encoding.Unicode);
SW.WriteLine(/*stuff*/);
SW.Close();
Run Code Online (Sandbox Code Playgroud) 我使用星号 11.2.1 并尝试使用命令“星号”,但出现以下错误
[root@ss sbin]# ls -l | grep asterisk
-rw-r--r--. 1 root root 23642286 Aug 13 08:37 asterisk
-rw-r--r--. 1 root root 23642286 Aug 13 08:37 rasterisk
[root@ss sbin]# asterisk
-bash: /usr/sbin/asterisk: Permission denied
[root@redsky sbin]#
Run Code Online (Sandbox Code Playgroud)
为什么权限被拒绝?
在梳理了大量修复程序后,我陷入了停滞。我是 Ruby/编程的新手,并且在今天早些时候安装了 Ruby/RVM 非常好,可以正常工作(单用户),但是发生了一些变化,我尝试修复它可能造成的损害大于好处。
本质上,当我尝试运行我的基本 .rb 文件时,它给了我:
ruby: No such file or directory -- doom.rb (LoadError)
Run Code Online (Sandbox Code Playgroud)
我尝试卸载 RVM 并重新安装,我认为这就是我搞砸的地方。我用过rvm implode,我认为这是一个不完整的删除。现在当我尝试它时,它只是说command not found。大多数其他修复程序都会显示相同的消息,repair以及get head,你有什么。
如果我尝试重新安装任何存在/不存在的东西,我会看到一个充满权限拒绝错误和已经存在的对象的屏幕:
rm: /Users/caroljones/.rvm/src/rvm/patchsets/ruby/1.9.3/p385: Permission denied
.
.
.
scripts/wrapper: Can't unlink already-existing object
scripts/zsh/: Can't update time for scripts/zsh
scripts/zsh/Completion/: Can't update time for scripts/zsh/Completion
scripts/zsh/Completion/_rvm: Can't unlink already-existing object
tar: Error exit delayed from previous errors.
Could not extract RVM sources.
Run Code Online (Sandbox Code Playgroud)
如果我运行echo $PATH,我会得到这个:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
Ruby 安装正常: …
我正在挖掘一个用 C++ 编写的开源项目(Chromium),我想创建一个文件并写入它。顺便说一句,我使用 Ninja 构建系统构建源代码。这是我创建文件的代码:
std::ofstream myfile;
myfile.open("collectedData.txt", std::fstream::out | std::fstream::app);
if (myfile.is_open()){
std::cout << "file is open.\n";
myfile << "Hello from Chrome!" ;
myfile << "\n" ;
}else {
std::cout << "error -> " << strerror(errno) << "\n";
std::cout <<"file cannot be opened.\n";
}
myfile.close();
Run Code Online (Sandbox Code Playgroud)
所以问题是我得到了这个代码的权限被拒绝错误,它没有创建文件。但是,当我创建一个新项目(使用 VS2010)并将项目的 .exe 文件复制到 Chromium 的同一目录中时,代码会创建该文件。所以我认为目录权限没有问题。
另外,我查看了任务管理器,发现有几个Chrome.exe进程,所以我想可能是因为并发进程。然后我决定在关闭文件并运行并发进程(.exe)之前检查这个并将cin命令添加到上面的代码(到VS2010中的新项目)。这样,我不会关闭文件并打开它的多个实例。令人惊讶的是,所有程序都可以成功打开文件并写入文件。
我不知道要检查什么,我想知道是否有人可以帮助我。
更新: 我找到了问题,您可以在答案部分找到解决方案。
我正在使用IIS 7程序集Microsoft.Web.Administration来读取和修改ASP.NET站点的MIME类型,这在Windows 2003和7上运行正常,但是在Windows Server 2012(64位)上我收到错误"文件名:redirection.config错误:由于权限不足而无法读取配置文件".
此应用程序安装在多个客户端站点上,其中无法修改system32文件夹上的权限,也无法禁用UAC.该应用程序需要Windows身份验证,因此无法选择切换到基本身份验证.我已尝试将应用程序池作为网络服务,本地系统,ApplicationPoolIdentity和域帐户运行,但得到相同的错误.
我不确定为什么ASP.NET需要访问reditrection.config才能访问Microsoft.Web.Administration组件中的功能.
是否可以在启用了UAC的2012 Server上使用Microsoft.Web.Administration,而无需修改系统文件夹权限或禁用UAC?或者我在使用Microsoft.Web.Administration执行此功能时出错?
我有一个PHP脚本应该以用户"apache"执行python脚本但是返回错误:
/transform/anaconda/bin/python: can't open file '/transform/python_code/edit_doc_with_new_demo_info.py': [Errno 13] Permission denied
对于权限edit_doc_with_new_demo_info.py的---xrwx--x. 1 apache PosixUsers 4077 Sep 18 12:14 edit_doc_with_new_demo_info.py.调用此python脚本的行是:
shell_exec('/transform/anaconda/bin/python /transform/python_code/edit_doc_with_new_demo_info.py ' . escapeshellarg($json_python_data) .' >> /transform/edit_subject_python.log 2>&1')
如果apache是python文件的所有者并且所有者具有执行权限,那么它怎么能无法打开文件?
我正在使用 Windows 上的 C++ 以 SFTP 模式使用库 libssh 将文件从 Linux 传输到 Windows。
我能够在 Windows 端创建一个文件并使用这个程序写入一次:
int sftp_read_sync(ssh_session session, sftp_session sftp)
{
int access_type;
sftp_file file;
char* buffer[MAX_XFER_BUF_SIZE];
int nbytes, nwritten, rc;
int fd;
access_type = O_RDONLY;
file = sftp_open(sftp, "/root/bel1.txt",
access_type, 0);
if (file == NULL) {
fprintf(stderr, "Can't open file for reading: %s\n",
ssh_get_error(session));
return SSH_ERROR;
}
fd = open("C:\\Users\\Wipro\\Desktop\\bel6.txt", O_WRONLY | O_CREAT | O_TRUNC);
if (fd < 0) {
fprintf(stderr, "Can't open file for writing: %s\n",
strerror(errno));
return …Run Code Online (Sandbox Code Playgroud) 我已经尝试了很多个小时,尝试了很多事情,所以我现在必须问。在我的 docker 上,我无法让 nodered 在其上运行。我总是收到共享卷的权限错误。我的另一个“fhem”容器确实以相同的文件夹权限运行。所以我不明白为什么这对nodered来说是一个问题。
目前我正在使用最新版本的ubuntu。
我想将 nodered 实例中的 /data 文件夹存储在 /opt/docker-nodered 中,但这不起作用。
我尝试使用以下命令安装它:
docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data --name nodered nodered/node-red-docker
Run Code Online (Sandbox Code Playgroud)
这里的权限如下:
stefmde@homeautomation:/opt$ ll
total 16
drwxr-xr-x 4 stefmde stefmde 4096 Sep 24 09:52 ./
drwxr-xr-x 23 root root 4096 Sep 21 18:56 ../
drwxr-xr-x 10 stefmde stefmde 4096 Sep 22 12:48 docker-fhem/
drwxr-xr-x 2 stefmde stefmde 4096 Sep 24 14:01 docker-nodered/
Run Code Online (Sandbox Code Playgroud)
我用以下内容更改了它们以尝试使其运行:
chown -R stefmde:stefmde /opt/docker-nored
Run Code Online (Sandbox Code Playgroud)
但无论我尝试什么,我总是遇到同样的错误:
stefmde@homeautomation:/opt/docker-nodered$ sudo docker run -it -p 1880:1880 -v /opt/docker-nodered/:/data …Run Code Online (Sandbox Code Playgroud)